from geometry to pixels

Thoughts about the Field of View (on HMDs)

In most VR applications such as 3D games, the field of view (FoV) is done wrong. It isn’t easy to do it right when sitting in front of a PC monitor but it will get simpler when/if head mounted displays (HMDs) become common for gamers – but maybe, it’s not right to do it right…

Let’s recap what the FoV is: A camera (real camera, virtual camera, the human eye etc.) sees only a part of the world. When we draw a line from the center of projection of the camera to the left-most object visible and another line from the center to the right-most object, the angle between those two lines is the horizontal field of view. Similar, there is a vertical field of view.

When a user sits in front of the PC at the recommended distance of 50 cm and looks at a 30″ 16:10 monitor he sees the screen at a horizontal FoV of about 66 degrees. Looking at a 13.3″ notebook screen from the same distance leads to just 32 degrees, roughly the same FoV you see from 2.5 meters on a 65″ TV. As at least the distance of the user to the screen is not known to a game, it can’t set the virtual FoV to the same value as it should be (ok, a webcam and a marker on the forehead of the gamer would solve the problem, I leave it as an exercise to the reader to convince the gamers to stick one to there heads and plugging in a webcam before starting to play…).

Older FPS games like Quake used a horizontal FoV of 90 degree and also let you set higher values, sometimes up to 179 (e.g. Half-Life if I remember correctly). More than that isn’t even possible with the standard perspective projection matrix (look up the math, you will run into a divide by 0 at 180 degrees…) Back then basically all displays were 4:3 but since then 16:9 and 16:10 displays were introduced and games had to support multiple different aspect ratios. Most of the time this is nowadays handled by specifying a fixed vertical FoV and adjust the horizontal FoV depending on the aspect ratio of the screen. This way when switching from 4:3 to a widescreen display, more content gets added at the sides but none will get cut off at the top or bottom. 90 degrees horizontal FoV on a 4:3 display results in 73.7 degree vertical FoV and 75 degree is in fact often used as the default, for example in Half-Life 2. Some games set the default lower, e.g. Skyrim sets it to 65 afaik (but I’m not aware of games with higher defaults). In the end, most settings are too large for the average screens but if a realistic field of view would be set, the player wouldn’t see enough of the world and would feel like playing with blinders (to get an idea, weapon zoom is often implemented by just reducing the FoV).

field of views compared

Different field of views in HL2

Larger views on the other hand look quite distorted on a small display and are often compared to fish-eye lenses. In fact, this term is far from accurate: note that straight lines remain straight in projection even at extreme FoVs while fisheye lenses for your camera bend those lines to curves. Some argue that with high FoV displays in HMDs we will need other kinds of projections because of the distortions seen above and mimic the fisheye lenses instead. But as long as we work with non-curved screens this isn’t true. Imagine we want to build a 170 degree horizontal FoV display to mimic the human vision as close as possible. If the user sits 50 cm apart, the display needs to be 11.4 meters wide! Screen content at the borders will be seen under quite some perspective foreshortening which cancels out the distortion. You can try this out to some extend when placing your nose 5cm away from your screen and look at high FoVs which suddenly look less distorted (160 degree horizontal FoV would be the correct value for a 24″ 16:9 screen 5cm away).

The human vision is remarkable, it learned to handle false FoVs and we encounter them on a daily basis: photos, TV, games – they rarely match the field of view they should have given the size and distance of the screen there presented on. Handling wrong visual impressions even work in the real world: glasses tend to shrink your sharp vision and some even “bend” it at the edges. Everyone who needs glasses knows the wired feeling of wearing new (and stronger) glasses for the first time. Contacts don’t have this effect and switching from glasses to contacts can screw with your vision in a similar way – until the brain adapts and learns to switch between different modes of vision.

So what does this mean for a fully immersive virtual environment where the user looks around by moving his head instead of using the mouse and where the virtual content on the screen is the only visual input? With HMDs with a wide field of view like the Oculus Rift (planned: 90 degrees horizontally, even 110 diagonal) using the real values might be the natural choice. In total the player sees more of the environment than on a PC screen and as the FoV is correct, it should be the optimum in terms of immersion, right?

Given that the human horizontal FoV goes up to about 180 degrees and the brain does such a good job in adapting, you have to wonder if a higher value than 90 (given that the specs of the Rift don’t change) might even get better results. For smaller HMDs of 20 to 80 degrees FoV Steinicke et al.[1] found, that users tend to prefer field of view values of 10, sometimes 20 degree higher than the physical values. It seems that an extra of 10 degrees could be a nice starting point for own FoV experiments for the Rift. Ideally it would show more of the virtual world, reduce the feeling of still wearing blinders and even increase the immersion.


[1] Natural Perspective Projections for Head-Mounted Displays, Steinicke F, Bruder G, Kuhl S, Willemsen P, Lappe M, Hinrichs KH., IEEE Trans Visualization and Computer Graphics 2011 Jul;17(7):888-99.


Leave a Reply

Your email address will not be published. Required fields are marked *

Warning: Illegal string offset 'q' in /homepages/36/d405284044/htdocs/rpblog/wp-content/plugins/quiz/quiz.php on line 60

Warning: Illegal string offset 'a' in /homepages/36/d405284044/htdocs/rpblog/wp-content/plugins/quiz/quiz.php on line 61

Warning: Illegal string offset 'q' in /homepages/36/d405284044/htdocs/rpblog/wp-content/plugins/quiz/quiz.php on line 179