Cockpit FOV

Thinking about improving the Artwork in Vega Strike, or making your own Mod? Submit your question and ideas in this forum.

Moderator: pyramid

Post Reply
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Cockpit FOV

Post by pyramid »

The cockpits are great. Though there is no minister approval, I think we should go ahead. UnitConverter should be able to prepare the bfxm files, though not integrate them fully. This you'll need to do by hand. Eventually I might add support for this iun the future.

OT, looking at the IW2 screenshot, I was wondering why in VS the perception of vessels in space is so unnatural. Has probably to do with the FOV. I like much more the IW2 perspective and wonder if there is a way top change that in VS. The config variables I've tried didn't help. Is this hard coded?

*EDIT*
Split off from cockpits
For reference, the pic referred to in the text above (click to enlarge).
Image
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: cockpits

Post by chuck_starchaser »

It's in vega.fig. In PU the values are

Code: Select all

                    <var name="fov" value="60.0"/>
                    <var name="base_fov" value="45.0"/>
                    <var name="aspect" value="1.3"/>
                    <var name="znear" value="1.0"/>
IIRC VS uses 90 degrees FOV. Even 60 is too wide; I should change it to 45, but then it might feel too different from WC.
The other solution is to move your chair forward until your nose is one inch from the screen. :D
Fendorin
Elite Venturer
Elite Venturer
Posts: 725
Joined: Mon Feb 26, 2007 6:01 pm
Location: France, Paris

Re: cockpits

Post by Fendorin »

And for the FOV

why not have a FOV"zoom"

-120° Means Travel FOV better for render the all universe and hve a "stretched stylish light"
-90° the current in game (tell me if it's wrong)
-60° bombing FOV or large combat FOV
-45° Maximum Zoom FOR Picky hit or fighting in fighter screen-pack

we should use the Sroll bbutton (page up page down) or others TAB
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: cockpits

Post by chuck_starchaser »

For the purposes of realism, there's only one FOV that's just right, and that's equal
to the angle that the width of the viewing area of your screen spans in front of your
eyes. That's 2.0 * arctan ( 0.5 * screewidth / eyetoscreendistance ).
The problem is that we can't know in advance the user's screen width or at what distance
it is placed from his/her eyes.
However, I measured my screen width and distance, once, and came up with less than
30 degrees. So, to whatever extent I may be typical, 90 degrees is horribly distorted.
But then again, if you put your face close enough to the screen, it will NOT look
distorted.
How close?
With 90 degrees, if your screen is 20" wide, say, we can solve for distance

Code: Select all

FOV = 2.0 * arctan ( 0.5 * screewidth / eyetoscreendistance )
0.5 * FOV = arctan ( 0.5 * screewidth / eyetoscreendistance )
tan( 0.5 * FOV ) = 0.5 * screewidth / eyetoscreendistance
2.0 * tan( 0.5 * FOV ) = screewidth / eyetoscreendistance
eyetoscreendistance = screewidth / ( 2.0 * tan( 0.5 * FOV ) )
eyetoscreendistance = 0.5 * screewidth / tan( 0.5 * FOV )
= 0.5 * 20" / tan( 45 deg )
= 10" / 1.0
= 10" distance.
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Re: cockpits

Post by pyramid »

The problem with

Code: Select all

<var name="fov" value="60.0"/>
is that the cockpit mesh is also changed though I think it should not.

As for the rest I agree with you, chuck, that representation is mathematically correct. However you should consider the adaptation capability of the brain. Imagine yourself standing and watching a skyscraper of 100m height from 100m distance. It would fill your vertical view mostly entirely. You can try the same with a door. Stand away 1m and you'll see about half the door vertically in your fov without moving the eyes vertically up or down. Assuming we could represent the human foview with a camera and then take that picture and put it on the full screen, we would perceive that picture fov as natural and "sense" the correct size and distance from the object. Now resize that same picture and make it half the dimensions, we would still perceive the picture as having the same fov and distance.

This means that the capability of the brain renders screen size irrelevant, and what only matters is the fov setting. I have tested the fov 37.5, and it looks pretty cool. When being 2km away from Archimedes (2500m length) it is seen about 75% across the screen (screen ratio 4:3). which is much better than the previous fov.

By accident I have already committed fov 37.5 today with the option that avoids manifest garbling. If nobody complains, we could stay with that for VS, since it looks much better in terms of feeling for distance. Just the cockpit fov would need to be changed.

Apologies for having hijacked the thread. If the discussion continues, I can split this into an own thread.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: cockpits

Post by chuck_starchaser »

pyramid wrote:The problem with

Code: Select all

<var name="fov" value="60.0"/>
is that the cockpit mesh is also changed though I think it should not.
Are you talking about 2D or 3D cockpits?
If you narrow your FOV and you have a 3D cockpit, of course you'll see less of the cockpit. That's as it should be. If, however, the object is to fit some geometry to the screen, the cockpit should be remodeled with the final FOV in mind; or you could scale it in x and y in units.csv.
The problem is with 2D cockpits, which will look the same no matter what FOV you have. The original cockpits in PU are pre-rendered using an FOV of 90 or so, so they look inconsistent if you use an FOV much smaller than 90 for the view of space.
As for the rest I agree with you, chuck, that representation is mathematically correct. However you should consider the adaptation capability of the brain. Imagine yourself standing and watching a skyscraper of 100m height from 100m distance. It would fill your vertical view mostly entirely. You can try the same with a door. Stand away 1m and you'll see about half the door vertically in your fov without moving the eyes vertically up or down. Assuming we could represent the human foview with a camera and then take that picture and put it on the full screen, we would perceive that picture fov as natural and "sense" the correct size and distance from the object. Now resize that same picture and make it half the dimensions, we would still perceive the picture as having the same fov and distance.

This means that the capability of the brain renders screen size irrelevant, and what only matters is the fov setting. I have tested the fov 37.5, and it looks pretty cool. When being 2km away from Archimedes (2500m length) it is seen about 75% across the screen (screen ratio 4:3). which is much better than the previous fov.
Yes and no; we CAN accomodate for a fish-eyed view through a small screen, but it will never feel right or be as immersive as if the FOV matches the angular extent of the screen in front of you. It's different when you're looking at a photo; of course you adjust and imagine the scene on the photo by (unconsciously) scaling up the photo in front of your mind's eye. But in a first person game one expects *easy* immersion.

But, as I was hinting, there's nothing to stop us from leaving FOV at 90 like it is, and telling users in the manual, website, --or even in game--, that for best viewing they should pull the screen closer until the eye to screen distance is half of the screen-width.
This would be the most elegant solution, as otherwise we're just guessing what the FOV should be.
Alternatively, we could pull the screen model data from windows and find out its width from the net, with some Python programming; and then calculate eye distance by sneaking a view through the user's webcam and doing image analysis :D
Or, more seriously, we could have screen-width and eye to screen parameters in vega.fig, for users to measure and enter, and we could calculate the exact FOV given those values.
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Cockpit FOV

Post by pyramid »

I've split this thread off, since it became longer than the original.
chuck_starchaser wrote:Are you talking about 2D or 3D cockpits?
I was thinking about 3D cockpits. I do favor the scaling solution since it's so much easier to implement than changing geometry.

chuck_starchaser wrote:...and then calculate eye distance by sneaking a view through the user's webcam and doing image analysis :D ...
He, he. For the sake of simplicity, the changed fov in the latest commit should suffice. Let's see what the feedback on that one will be.
Post Reply