![]() -> Click here to learn how to get live help <- |
GLUPERSPECTIVEIndexNAMEgluPerspective - set up a perspective projection matrixC SPECIFICATIONvoid f3gluPerspectivefP( GLdouble fIfovyfP,f2fovyfP Specifies the field of view angle, in degrees, in the f2yfP direction.
DESCRIPTION%f3gluPerspectivefP specifies a viewing frustum into the world coordinate system. In general, the aspect ratio in %f3gluPerspectivefP should match the aspect ratio of the associated viewport. For example, $ "aspect" ~=~ 2.0 $ means the viewer's angle of view is twice as wide in f2xfP as it is in f2yfP. If the viewport is twice as wide as it is tall, it displays the image without distortion. The matrix generated by %f3gluPerspectivefP is multipled by the current matrix, just as if f3glMultMatrixfP were called with the generated matrix. To load the perspective matrix onto the current matrix stack instead, precede the call to %f3gluPerspectivefP with a call to f3glLoadIdentityfP. Given f2ffP defined as follows:
ccol { {f over "aspect"} above 0 above 0 above 0 } ccol { 0 above f above 0 above 0 } ccol { 0 above 0 above {{"zFar" + "zNear"} over {"zNear" - "zFar"}} above -1 } ccol { 0 above 0 above {{2 * "zFar" * "zNear"} over {"zNear" - "zFar"}} above 0} }} ~~~ right ) NOTESDepth buffer precision is affected by the values specified for f2zNearfP and f2zFarfP. The greater the ratio of f2zFarfP to f2zNearfP is, the less effective the depth buffer will be at distinguishing between surfaces that are near each other. If
roughly $log sub 2 r$ bits of depth buffer precision are lost. Because $r$ approaches infinity as f2zNearfP approaches 0, f2zNearfP must never be set to 0. SEE ALSOf3glFrustum(3G)fP, f3glLoadIdentity(3G)fP, f3glMultMatrix(3G)fP, %f3gluOrtho2D(3G)fP
Index |