MirBSD manpage: gluLookAt(3)

GLULOOKAT(3G)       UNIX Programmer's Manual        GLULOOKAT(3G)


     gluLookAt - define a viewing transformation


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


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

     centerX, centerY, centerZ
                     Specifies the position of the reference

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


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


     F = | centerX
         | centerY   -
         | centerZ   -   eyeX  |
                     -   eyeY  |
                         eyeZ  |

     Let UP be the vector (upX,upY,upZ).
     Then normalize as follows: f = ||F||

MirBSD #10-current     Printed 2021-12-07                       1

GLULOOKAT(3G)       UNIX Programmer's Manual        GLULOOKAT(3G)

     UP' = ||UP||

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

     M is then constructed as follows:
     M = | s[0]
         | u[0]
         |-f[0]   s[1]
         |  0     u[1]
                 -f[1]   s[2]
                   0     u[2]
                        -f[2]  0  |
                          0    0  |
                               0  |
                               1  |
     and gluLookAt is equivalent to glMultMatrixf(M);
     glTranslated (-eyex, -eyey, -eyez);


     glFrustum(3G), gluPerspective(3G)

MirBSD #10-current     Printed 2021-12-07                       2

Generated on 2021-12-07 11:28:18 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.