*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> glFrustum (3)              
Title
Content
Arch
Section
 

glFrustum(3G)

Contents


NAME    [Toc]    [Back]

       glFrustum  -  multiply the current matrix by a perspective
       matrix

SYNOPSIS    [Toc]    [Back]

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

PARAMETERS    [Toc]    [Back]

       Specify the coordinates for the left  and  right  vertical
       clipping  planes.   Specify the coordinates for the bottom
       and top horizontal clipping planes.  Specify the distances
       to the near and far depth clipping planes.  Both distances
       must be positive.

DESCRIPTION    [Toc]    [Back]

       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
       zNear}      /      {right      -      left}              0
       A  0
         0                        {2  zNear}  /  {top  -  bottom}
       B  0
         0                                                      0
       C  D
         0                                                      0
       -1  0
                                  A  =  {right + left} / {right -
       left}
                                  B = {top +  bottom}  /  {top  -
       bottom}
                                  C  =  -{zFar + zNear} / {zFar -
       zNear}
                                  D = -{2 zFar zNear} /  {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, 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    [Toc]    [Back]

       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 / zNear

       roughly log[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    [Toc]    [Back]

       GL_INVALID_VALUE is generated if zNear or zFar 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    [Toc]    [Back]

       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    [Toc]    [Back]

      
      
       glOrtho(3),  glMatrixMode(3),  glMultMatrix(3),  glPushMatrix(3), glViewport(3)



                                                    glFrustum(3G)
[ Back ]
 Similar pages
Name OS Title
glScalef Tru64 multiply the current matrix by a general scaling matrix
glscale IRIX multiply the current matrix by a general scaling matrix
glScale Tru64 multiply the current matrix by a general scaling matrix
glScaled Tru64 multiply the current matrix by a general scaling matrix
glOrtho Tru64 multiply the current matrix with an orthographic matrix
glRotatef Tru64 multiply the current matrix by a rotation matrix
glRotate Tru64 multiply the current matrix by a rotation matrix
glrotate IRIX multiply the current matrix by a rotation matrix
glTranslated Tru64 multiply the current matrix by a translation matrix
glRotated Tru64 multiply the current matrix by a rotation matrix
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service