# gluPerspective.3G man page

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

## Authors

**opengl.org**