4 ms·
3D games use a rectangular perspective projection - they project the scene to a 2D rectangle. Problem is that the FOV (field of view, zoom) is not correct unles
by hrydgard 9y ago
3D games use a rectangular perspective projection - they project the scene to a 2D rectangle. Problem is that the FOV (field of view, zoom) is not correct unless you put your head very close to the monitor. This leads to distortion. For example, if the FOV is 90 degrees, you need to put your eye (will only be correct for one, of course) centered in front of the display at a distance that's exactly half the width of the screen (draw the triangle). Obviously that's extremely uncomfortable so we pull back and deal with the distortion.
Working around that with a fisheye projection has other issues, like straight lines in 3D ending up curved on the screen, and is a bit more computationally expensive, though not too bad these days. It's free in Wolfenstein-style 2.5D though (although Doom chose not to do it).
- Fifer82 9y agoA great explanation of FOV, thanks!
- AstralStorm 9y agoAs far as I am aware, Wolf 3D had an approximation of such perspective constructed from multiple rectangular projections. This trick also allows you to reuse part of the perspective transform while moving forward. Wouldn't look to nice in high res as long as number of projections isn't increased. Seams would get noticeable.
- mxfh 9y agoOf cause projections themselves don't have to be restricted to the geometric planar case: https://github.com/shaunlebron/blinky https://github.com/shaunlebron/blinky and don't miss the explanatory part further down: http://shaunlebron.github.io/visualizing-projections/ http://shaunlebron.github.io/visualizing-projections/