glFrustum — multiply the current matrix by a perspective matrix
void glFrustumf( | GLfloat left, |
GLfloat right, | |
GLfloat bottom, | |
GLfloat top, | |
GLfloat near, | |
GLfloat far) ; |
void glFrustumx( | GLfixed left, |
GLfixed right, | |
GLfixed bottom, | |
GLfixed top, | |
GLfixed near, | |
GLfixed far) ; |
left
,
right
Specify the coordinates for the left and right vertical clipping planes.
bottom
,
top
Specify the coordinates for the bottom and top horizontal clipping planes.
near
,
far
Specify the distances to the near and far depth clipping planes. Both distances must be positive.
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:
Typically, the matrix mode is
GL_PROJECTION
, and
(left
, bottom
,
-near
) and
(right
, top
,
-near
)
specify 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).
-far
specifies the location of the far clipping plane. Both
near
and
far
must be positive.
Use glPushMatrix and glPopMatrix to save and restore the current matrix stack.
Depth buffer precision is affected by the values
specified for near
and
far
. The greater the ratio of
far
to
near
is, the less effective the depth buffer will be at
distinguishing between surfaces that are near each other. If
roughly
r
approaches infinity as
near
approaches 0,
near
must never be set to 0.
GL_INVALID_VALUE
is generated if
near
or far
is not positive, or if
left
= right
, or
bottom
= top
, or
near
= far
.
Copyright © 2003-2004 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.