gluLookAt — define a viewing transformation

`void ` | 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 point.

,`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.

Let

Let *UP* be the vector

Then normalize as follows:

Finally, let

M is then constructed as follows:

and `gluLookAt`

is equivalent to

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

Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see https://khronos.org/registry/OpenGL-Refpages/LICENSES/LicenseRef-FreeB.txt.