(*)Not the one which was poorly formulated and therefore rightly has been mis-interpreted as QQ
Now, I'll talk about "incorrect" values for FoV.
Erratum: I've taken new pictures with a more adequate description of what's happening after a discussion with Morang. The pics also have a slightly better quality
Why even bother with "incorrect" values for FoV?
First of all, the default FPS FoV is about 90° horizontal / 60° vertical. CryEngine uses the vertical FoV as parameter. The vertical FoV for my screen/setup is about 25°, and I guess it's similar for many of you (please read on).
That is, obviously, the default FoV is even an estimate for the correct FoV of most players. Therefore, there must be a reason why not to set it to the correct value. I'll try to visualize the effect of different FoVs.
Disclaimer: The following pics contain material from PGI, maybe licensed by Microsoft.
The test scene
A typical "MWO" scene, top view, where the camera is far far away and zooming (orthographic projection):
Wow, I even have mechs now in my pics Though it still looks a bit odd and boring. Oops, the checkerboxes are not rectangular m( nvm
As I said in my last topic, FoV mainly is to match the rendering parameters to the screen size and distance to the user. To visualize different screen sizes, I chose to put a black margin around the following pictures. You'll see at the end of the post.
Looking through the cockpit, default FoV = 60°
The weird thing at the bottom centre of the picture above is a hunchback's cockpit. We'll step into the cockpit, using a camera with default 60° vertical FoV, and place it at the position of the pilot's head. This is what MWO shows per default:
We'll refer to this picture as #0. As you can see, the objects at the edges of the picture are distorted. This is because the FoV value (60°) is not adequate for your screen setup, plus the picture is smaller to enhance to effect.
If this is what MWO displays in fullscreen, and you have a screen of 1.5 m width and are 0.75 m away from it, the screen content won't look distorted (hi again Mr P2W-hugescreen). Or with a 0.5 m wide screen (16:9 diagonal about 23"), you get to 22.5 cm distance (ouch) and everything will look fine.
Let's assume you actually have such a 0.5 m wide screen and look at it from such a uncomfortable distance to get a perspectively correct picture. Then, you move your head back to a more reasonable 0.5 m distance, achieving a FoV of 30°. To get this effect, your avatar pilot had to move its pilot seat back, because you also moved in the real world.
Using the adequate value for FoV (for most cases), 30°
We'll refer to this picture as #1. As you can see, you can't see the JR any more, same with some of the spheres. The edges of the picture are not distorted any more (if you don't have a really weird screen setup). Note that you can still see bits of the cockpit.
^this is NOT what you would see if you could set your FoV to 30° in MWO. Instead, MWO (CryEngine) would display this:
We'll refer to this picture as #2. It's what you get if your pilot doesn't move the seat. And no bits of the cockpit any more.
Imagine your avatar pilot is looking though a picture frame. When the pilot doesn't change the position of the seat, the difference between picture #2 and picture #0 is just like stretching/pinching the picture frame, while holding it at the same distance.
P2W: A larger screen?
Let's get back to picture #1, where you just moved your head back from the screen to a distance of 0.5 m, your pilot has moved the seat accordingly. What happens if you now replace your small screen by the huge screen of Mr P2W?
We'll refer to this picture as #3.
Mr P2W wants to enlarge his peripheral vision but stay at the reasonable distance of 0.5 m to his screen. So he buys a screen that is 2x larger and place it at the former position of his old screen. That is equal to the pilot holding the picture frame at the same distance, but stretching it. He had a vertical FoV of 30° before ("correct value"), and ends up with a vertical FoV of 60° (it's a coincidence that old FoV/new FoV = 0.5, for 0.5 m distance from the screen. FoV doesn't scale linearly with screen size).
No, wait, no P2W
But as you cannot tell MWO how big your screen is, or adjust the pilot seat, you can only get pictures #0 and #2 (where #2 is forbidden due to FoV restrictions imposed by the devs). Though picture #3 would be more adequate to Mr P2W's situation, he'll just get a stretched #0 picture.
Size & scale revisited
As Morang pointed out, if the FoV you set in MWO matches your screen height/distance, the objects always look "correctly scaled" no matter if your pilot's seat is adjusted or not. It's like using only one eye in the real world: You cannot tell how big AND far an object is just by looking at it, you only get its "angular size", i.e. how much of your (real-world) FoV is occupied by the object.
That is why for the image of single virtual camera, there's no difference between "moving the camera nearer to an object" and "making the object bigger (in the virtual world)".
If you have a second camera for stereoscopy (3D displays, HMDs) or add a head-tracking feature, things change and you have to allow to adjust the pilot's seat in order not to make things look weird.
Why using a perspectively incorrect FoV?
Now why do we have a default FoV of 60°, which is inadequate for the majority of setups? I don't know the exact reasons, part of it may be "tradition" since Quake. But one of the reasons could be immersion: You set the FoV to a higher value to get a better peripheral vision. In the real-world, you don't look just through a window that's 0.5 m wide and 0.5 m far away from you. So it's maybe a compromise between immersion because of perspective correctness and immersion because of peripheral vision. (Note again: in the real-world, you'd get closer to the window, but your eyes see through the window, they don't have to focus at the window like this is the case with your screen.)
Compare pictures #1 and #2 with a perspectively correct FoV to picture #0.
Conclusion
As it is a compromise, you are free to set the FoV to any value, but I encourage you to try (once) to set it to your correct value -- but not by changing the value, but rather by moving your head to the right distance. Say, for FoV = 60° and height of screen = 30 cm, that's about 25 cm far from your screen. And then talk about immersion. It's the correct value and yet you have a great peripheral vision -- like you move close to a real-world window. Note getting to close to a screen might be very uncomfortable, so just try this for a short amount of time.
The Occulus Rift (yay! hype!) has this one huge advantage over many of the other HMDs: It's got a large screen, therefore the correct FoV is high enough so you don't need to set it higher for more peripheral vision. AND of course, if there's screen / a picture in your real-life peripheral vision, that's also very immersive.
Some last remarks:
As you can read here, the devs have restricted the FoV to values > 60° horizontal. As zooming (not the advanced zoom) is based on narrowing the FoV, I can understand the reasoning somewhat -- though being puzzled that you cannot set your correct FoV any more due to this.
What's the best FoV for my screen setup?
I can tell you what's the most perspectively correct (or simply "correct") value, but I can't tell you what's the most immersive or useful value for you.
You can find the formula and some additional infos in my last topic, The Truth about FoV.
Here's a step-by-step guide to compute fov = 2*arctan( 0.5*screen height / distance to screen )
If you have (or can measure) the height of your screen; otherwise if you only have the diagonal (like 22"), see below.
- Measure the height of your screen (visible area).
- Measure the distance your head (eyes) have from the screen; approximately. Watch out both values should have the same unit (cm, inch, whatever).
- Compute: 0.5 * height of screen / distance to screen
- Set your calculator to "degrees" and compute the arctan (tan-1, that is inv+tan on many calculators) of the result from step 3.
- Multiply by 2.
- The value you get is the perspectively correct vertical FoV. The most immersive FoV is definitely higher than this value, so it's a minimum.
- Compute: horizontal resolution / vertical resolution = aspect ratio (like 1920/1080 = 1.777...)
- Compute: diagonal*diagonal / (aspect ratio * aspect ratio + 1)
- Extract a root (or to the power of 0.5) => height of your screen in inch
- Measure the distance your head (eyes) have from the screen; approximately.
- If you measured in cm, multiple the distance to screen by 2.54 to get it in inch.
- Go to step 3 of the previous guide.
I hope you enjoy your next matches and maybe you'll find a more immersive FoV value for you. Just try it.
Edited by Phaesphoros, 13 April 2013 - 10:14 AM.