glFrustum

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
GLFRUSTUM(3G)							GLFRUSTUM(3G)



NAME
       glFrustum - multiply the current matrix by a perspective matrix


C SPECIFICATION
       void glFrustum( GLdouble left,
		       GLdouble right,
		       GLdouble bottom,
		       GLdouble top,
		       GLdouble near_val,
		       GLdouble far_val )


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_val, far_val
		   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	   A  0



















				  0	__________ B  0








			    [			       ]










				  0	     0	   C  D



















				  0	     0	   −1 0


				    A=__________


				    B=__________


				C=−________________


				D=−________________



       Typically,  the	matrix	mode  is  GL_PROJECTION,  and  (left, bottom,
       -near_val) and (right, top,  -near_val) specify the points on the near
       clipping	 plane that are mapped to the lower left and upper right cor-
       ners of the window, assuming that the eye is located  at	 (0,  0,  0).
       -far_val	 specifies  the	 location  of  the  far clipping plane.	 Both
       near_val and far_val 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_val and far_val.  The greater the ratio of	far_val	 to  near_val
       is,  the	 less  effective  the  depth buffer will be at distinguishing
       between surfaces that are near each other.  If

				     r=________

       roughly log2(r) bits of depth buffer precision are  lost.   Because  r
       approaches  infinity  as near_val approaches 0, near_val must never be
       set to 0.

ERRORS
       GL_INVALID_VALUE is generated if near_val or far_val is not  positive,
       or if left = right, or bottom = top.

       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(3G),  glMatrixMode(3G),	glMultMatrix(3G),   glPushMatrix(3G),
       glViewport(3G)



								GLFRUSTUM(3G)