Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ glfrustum(3G) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



glFrustum(3G)                  OpenGL Reference                  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,
                     GLdouble far )


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, far   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:



                               |   A   0   C   0   |

                               |                   |
                                   0   B   D   0
                               |                   |

                               |   0   0   E   F   |

                               |                   |
                                   0   0  -1   0
                               |                   |



                            A = (2*near) / (right-left)



                            B = (2*near) / (top-bottom)



                          C = (right+left) / (right-left)



                          D = (top+bottom) / (top-bottom)


                           E = -(far+near) / (far-near)



                          F = -(2*far*near) / (far-near)


     Typically, the matrix mode is GLPROJECTION, and (left, bottom, -near)
     and (right, top,  -near) 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).  -far specifies the



                                                                        Page 1






glFrustum(3G)                  OpenGL Reference                  glFrustum(3G)



     location of the far clipping plane.  Both near and far 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 and
     far.  The greater the ratio of far to near is, the less effective the
     depth buffer will be at distinguishing between surfaces that are near
     each other.  If

                                  r = far / near

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

ERRORS
     GLINVALIDVALUE is generated if near or far is not positive.

     GLINVALIDOPERATION is generated if glFrustum is executed between the
     execution of glBegin and the corresponding execution of glEnd.

ASSOCIATED GETS
     glGet with argument GLMATRIXMODE
     glGet with argument GLMODELVIEWMATRIX
     glGet with argument GLPROJECTIONMATRIX
     glGet with argument GLTEXTUREMATRIX

SEE ALSO
     glOrtho, glMatrixMode, glMultMatrix, glPushMatrix, glViewport
























                                                                        Page 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026