GLdoubleeyeY,GLdoubleeyeZ,GLdoublecenterX,GLdoublecenterY,GLdoublecenterZ,GLdoubleupX,GLdoubleupY,GLdoubleupZ)

**eqn not supported**

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

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.

Let

**eqn not
supported**

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

Then normalize
as follows: **eqn not supported**

**eqn not supported**

Finally, let $s ~=~ f ~times~ UP sup prime$, and $u ~=~ s ~times~ f$.

M is then constructed as follows:
**eqn not supported**

and **gluLookAt** is equivalent to glMultMatrixf(M); glTranslated
(-eyex, -eyey, -eyez);