Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
GLFRUSTUM()							     GLFRUSTUM()

NAME
     glFrustum - multiply the current matrix by a perspective matrix

C SPECIFICATION
     void glFrustum( GLdouble left,
		     GLdouble right,
		     GLdouble bottom,
		     GLdouble top,
		     GLdouble zNear,
		     GLdouble zFar )

     delim $$

PARAMETERS
     left, right
		 Specify  the  coordinates for the left and right vertical clip-
		 ping planes.

     bottom, top
		 Specify the coordinates for the bottom and top horizontal clip-
		 ping planes.

     zNear, zFar
		 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 pro-
     jection.  The current matrix (see glMatrixMode) is multiplied by  this  ma-
     trix  and	the  result replaces the current matrix, as if glMultMatrix were
     called with the following matrix as its argument:

			    down 130 {left ( ~~ matrix {
	ccol { {{2 ~ "zNear"} over {"right" - "left"}} above 0 above 0 above 0 }
	ccol { 0 above {{2 ~ "zNear"} over {"top" - "bottom"}} ~ above 0 above 0
     }
	ccol { A ~~~~ above B ~~~~ above C ~~~~ above -1 ~~~~}
	ccol { 0 above 0 above D above 0} }  ~~~ right )}

				      down 130
     {A ~=~ {"right" + "left"} over {"right" - "left"}}

				      down 130
     {B ~=~ {"top" + "bottom"} over {"top" - "bottom"}}

				      down 130
     {C ~=~ -{{"zFar" + "zNear"} over {"zFar" - "zNear"}}}

				      down 130
     {D ~=~ -{{2 ~ "zFar" ~ "zNear"} over {"zFar" - "zNear"}}}

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

			     $r ~=~ "zFar" over "zNear"$

     roughly  $log  sub 2 (r)$ bits of depth buffer precision are lost.  Because
     $r$ approaches infinity as zNear approaches 0, zNear must never be  set  to
     0.

ERRORS
     GL_INVALID_VALUE is generated if zNear or zFar is not positive.

     GL_INVALID_OPERATION is generated if glFrustum is executed between the exe-
     cution 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

SEE ALSO
     glOrtho, glMatrixMode, glMultMatrix, glPushMatrix, glViewport

								     GLFRUSTUM()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=glFrustum&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help