- multiply the current matrix by a perspective matrix
C SPECIFICATION
PARAMETERS
_param1, _param2 Specify the coordinates for the left and
right vertical clipping planes.
_param3, _param4 Specify the coordinates for the bottom
and top horizontal clipping planes.
_param5, _param6 Specify the distances to the near and far
depth clipping planes. Both distances
must be positive.
DESCRIPTION
glFrustum describes a perspective matrix that produces a
perspective projection. The current matrix (see
glMatrixMode) is multiplied by this matrix and the result
replaces the current matrix, as if glMultMatrix were
called with the following matrix as its argument:
0 _e_q_n_p_<I>a_<I>r_e<I>a_q<I>m_n_p_a_r<I>e_a<I>q_m<I>n_<I>p_a_r_a_m__ B 0
[ ]
0 0 C D
D=-_<I>e_e<I>q_q<I>n_n<I>p_p<I>a_a<I>r_r<I>a_a<I>m_m___e<I>e_q<I>q_n<I>n_p<I>p_a<I>a_r<I>r_a<I>a_m<I>m__
Typically, the matrix mode is GL_PROJECTION, and (_param1,
_param3, -_param5) and (_param2, _param4, -_param5) spec-
ify the points on the near clipping plane that are mapped
to the lower left and upper right corners of the window,
assuming that the eye is located at (0, 0, 0). -_param6
specifies the location of the far clipping plane. Both
_param5 and _param6 must be positive.
Use glPushMatrix and glPopMatrix to save and restore the
current matrix stack.
NOTES
Depth buffer precision is affected by the values specified
for _param5 and _param6. The greater the ratio of _param6
to _param5 is, the less effective the depth buffer will be
at distinguishing between surfaces that are near each
other. If
r=_e<I>e_q<I>q_n<I>n_p<I>p_a<I>a_r<I>r_a<I>a_m<I>m__
roughly log2(r) bits of depth buffer precision are lost.
Because r approaches infinity as _param5 approaches 0,
_param5 must never be set to 0.
ERRORS
GL_INVALID_VALUE is generated if _param5 or _param6 is not
positive, or if _param1 = _param2, or _param3 = _param4.
GL_INVALID_OPERATION is generated if glFrustum is executed
between the execution of glBegin and the corresponding
execution of glEnd.
ASSOCIATED GETS
glGet with argument GL_MATRIX_MODE
glGet with argument GL_MODELVIEW_MATRIX
glGet with argument GL_PROJECTION_MATRIX
glGet with argument GL_TEXTURE_MATRIX
glGet with argument GL_COLOR_MATRIX
SEE ALSO
glOrtho, glMatrixMode, glMultMatrix, glPushMatrix,
glViewport
1