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  asso-
       ciated   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(f_o_v_y_)


























                      0   f      0           0








                  (                                 )










                      0   0 z<I>z_F<I>N_a<I>e_r<I>a_<I>r_z_N<I>z_e<I>F_a<I>a_r<I>r_ _<I>z_z<I>N_F<I>e_a<I>a_r<I>r__z<I>z_N<I>F_e<I>a_a<I>r_r__















                                r=z_z<I>N_F<I>e_a<I>a_r<I>r_


       roughly log2r 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, glLoadIdentity, glMultMatrix, gluOrtho2D



                                                                1