glFrustum(3) glFrustum(3)

## NAME

glFrustum- multiply the current matrix by a perspective matrix

## C SPECIFICATION

voidglFrustum( GLdoubleleft, GLdoubleright, GLdoublebottom, GLdoubletop, GLdoublezNear, GLdoublezFar)

## PARAMETERS

left,rightSpecify the coordinates for the left and right vertical clipping planes.bottom,topSpecify the coordinates for the bottom and top horizontal clipping planes.zNear,zFarSpecify the distances to the near and far depth clipping planes. Both distances must be positive.

## DESCRIPTION

glFrustumdescribes a perspective matrix that produces a perspective projection. The current matrix (seeglMatrixMode) is multiplied by this matrix and the result replaces the current matrix, as ifglMultMatrixwere called with the following matrix as its argument: 2 zNear ------------ 0 A 0 right - left 2 zNear 0 ------------ B 0 top - bottom 0 0 C D 0 0 -1 0 A = (right + left) / (right - left) B = (top + bottom) / (top - bottom) C = - (zFar + zNear) / (zFar - zNear) D = - (2 zFar zNear) / (zFar - zNear) Typically, the matrix mode isGL_PROJECTION, and (left,bottom, -zNear) and (right,top, -zNear) specify the points on the near clipping plane that are mapped to the lower left and upper right corners of the win- dow, assuming that the eye is located at (0, 0, 0). -zFarspecifies the location of the far clipping plane. BothzNearandzFarmust be positive. UseglPushMatrixandglPopMatrixto save and restore the current matrix stack.

## NOTES

Depth buffer precision is affected by the values specified forzNearandzFar. The greater the ratio ofzFartozNearis, the less effec- tive the depth buffer will be at distinguishing between surfaces that are near each other. If r = zFar / zNear roughly log2(r) bits of depth buffer precision are lost. Because r approaches infinity aszNearapproaches 0,zNearmust never be set to 0.

## ERRORS

GL_INVALID_VALUEis generated ifzNearorzFaris not positive, or ifleft=right, orbottom=top.GL_INVALID_OPERATIONis generated ifglFrustumis executed between the execution ofglBeginand the corresponding execution ofglEnd.

## ASSOCIATED GETS

glGetwith argumentGL_MATRIX_MODEglGetwith argumentGL_MODELVIEW_MATRIXglGetwith argumentGL_PROJECTION_MATRIXglGetwith argumentGL_TEXTURE_MATRIXglGetwith argumentGL_COLOR_MATRIX

## SEE ALSO

glOrtho(3),glMatrixMode(3),glMultMatrix(3),glPushMatrix(3),glViewport(3)glFrustum(3)

Mac OS X 10.6 - Generated Thu Sep 17 20:20:20 CDT 2009