1991-2006
Silicon Graphics, Inc.
gluPerspective
3G

# 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 associated 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 &af; fovy 2 The generated matrix is

f aspect 0 0 0 0 f 0 0 0 0 zFar + zNear zNear - zFar 2 × zFar × zNear zNear - zFar 0 0 -1 0

## Notes

Depth buffer precision is affected by the values specified for `zNear` and `zFar`. The greater the ratio of `zFar` to `zNear` is, the less effective the depth buffer will be at distinguishing between surfaces that are near each other. If

r = zFar zNear

roughly log 2 &af; r bits of depth buffer precision are lost. Because r approaches infinity as `zNear` approaches 0, `zNear` must never be set to 0.

## See Also

gluOrtho2D, glFrustum, glLoadIdentity, glMultMatrix

## Copyright

Copyright 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.