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()

NAME | C SPECIFICATION | PARAMETERS | DESCRIPTION | NOTES | ERRORS | ASSOCIATED GETS | SEE ALSO

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

home | help