ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



GLUPERSPECTIVE(3G)                                                                        GLUPERSPECTIVE(3G)



NAME
       gluPerspective - set up a perspective projection matrix


C SPECIFICATION
       void gluPerspective( GLdouble fovy,
                            GLdouble aspect,
                            GLdouble zNear,
                            GLdouble zFar )


PARAMETERS
       fovy    Specifies the field of view angle, in degrees, in the y direction.

       aspect  Specifies  the aspect ratio that determines the field of view in the x direction.  The aspect
               ratio is the ratio of x (width) to y (height).

       zNear   Specifies the distance from the viewer to the near clipping plane (always positive).

       zFar    Specifies the distance from the viewer to the far clipping plane (always positive).

DESCRIPTION
       gluPerspective specifies a viewing frustum into the world coordinate system.  In general, the  aspect
       ratio in gluPerspective should match the aspect ratio of the associated viewport. For example, aspect
       = 2.0 means the viewer's angle of view is twice as wide in x as it is in y.  If the viewport is twice
       as wide as it is tall, it displays the image without distortion.

       The  matrix  generated  by gluPerspective is multipled by the current matrix, just as if glMultMatrix
       were called with the generated matrix.  To load the perspective matrix onto the current matrix  stack
       instead, precede the call to gluPerspective with a call to glLoadIdentity.

       Given f defined as follows:

                                              f  = cotangent(fovy/2)

       The generated matrix is
             f
        ------------       0              0              0
           aspect


            0              f              0              0

                                      zFar+zNear    2*zFar*zNear
            0              0          ----------    ------------zNear-zFar -----------zNear-zFar
                                      zNear-zFar     zNear-zFar

            0              0              -1             0



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


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

SEE ALSO
       glFrustum(3G), glLoadIdentity(3G), glMultMatrix(3G), gluOrtho2D(3G)




                                                                                          GLUPERSPECTIVE(3G)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.