20032004
Silicon Graphics, Inc.
glFrustum
3G
glFrustum
glFrustumf
glFrustumx
multiply the current matrix by a perspective matrix
C Specification
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
Parameters
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.
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:
2
near
right

left
0
A
0
0
2
near
top

bottom
B
0
0
0
C
D
0
0
1
0
A
=
right
+
left
right

left
B
=
top
+
bottom
top

bottom
C
=

far
+
near
far

near
D
=

2
far
near
far

near
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.
Notes
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
r
=
farnear
roughly
log2(r)
bits of depth buffer precision are lost. Because
r approaches infinity as
near approaches 0,
near must never be set to 0.
Errors
GL_INVALID_VALUE is generated if
near or far
is not positive, or if
left = right, or
bottom = top, or
near = far.
See Also
glOrtho,
glMatrixMode,
glMultMatrix,
glPushMatrix,
glViewport
Copyright
Copyright 20032004
Silicon Graphics, Inc. This document is licensed under the SGI
Free Software B License. For details, see
https://khronos.org/registry/OpenGLRefpages/LICENSES/LicenseRefFreeB.txt.