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

FreeBSD Manual Pages

  
 
  

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
		   clipping planes.

       bottom, top Specify the coordinates for the bottom and  top  horizontal
		   clipping 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
       projection.   The  current  matrix  (see	glMatrixMode) is multiplied by
       this matrix and the result replaces the current matrix, as if glMultMa-
       trix 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 win-
       dow, assuming 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	effec-
       tive 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.  Be-
       cause $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
       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

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.0.quarterly>

home | help