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



GLULOOKAT(3G)                                                                                  GLULOOKAT(3G)



NAME
       gluLookAt - define a viewing transformation


C SPECIFICATION
       void gluLookAt( GLdouble eyeX,
                       GLdouble eyeY,
                       GLdouble eyeZ,
                       GLdouble centerX,
                       GLdouble centerY,
                       GLdouble centerZ,
                       GLdouble upX,
                       GLdouble upY,
                       GLdouble upZ )


PARAMETERS
       eyeX, eyeY, eyeZ
                       Specifies the position of the eye point.

       centerX, centerY, centerZ
                       Specifies the position of the reference point.

       upX, upY, upZ   Specifies the direction of the up vector.

DESCRIPTION
       gluLookAt creates a viewing matrix derived from an eye point, a reference point indicating the center
       of the scene, and an UP vector.

       The matrix maps the reference point to the negative z axis and the eye point to the origin.   When  a
       typical  projection matrix is used, the center of the scene therefore maps to the center of the view-port. viewport.
       port.  Similarly, the direction described by the UP vector projected onto the viewing plane is mapped
       to  the positive y axis so that it points upward in the viewport.  The UP vector must not be parallel
       to the line of sight from the eye point to the reference point.

       Let

            centerX - eyeX
        F = centerY - eyeY
            centerZ - eyeZ

       Let UP be the vector (upX, upY, upZ).

       Then normalize as follows: f = F/ || F ||

       UP' = UP/|| UP ||

       Finally, let s = f X UP', and u = s X f.

       M is then constructed as follows:

             s[0]    s[1]    s[2]    0
             u[0]    u[1]    u[2]   0
        M = -f[0]   -f[1]   -f[2]    0
              0       0       0      1

       and gluLookAt is equivalent to

       glMultMatrixf(M);

       glTranslated (-eyex, -eyey, -eyez);

SEE ALSO
       glFrustum(3G), gluPerspective(3G)




                                                                                               GLULOOKAT(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.