·  Home
+   man pages
 -> Linux -> FreeBSD -> OpenBSD -> NetBSD -> Tru64 Unix -> HP-UX 11i -> IRIX
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

man pages->Tru64 Unix man pages -> glFrustum (3)
 Title
 Content
 Arch
 Section All Sections 1 - General Commands 2 - System Calls 3 - Subroutines 4 - Special Files 5 - File Formats 6 - Games 7 - Macros and Conventions 8 - Maintenance Commands 9 - Kernel Interface n - New Commands

## glFrustum(3G)

```
```

### NAME[Toc][Back]

```       glFrustum  -  multiply the current matrix by a perspective
matrix
```

### SYNOPSIS[Toc][Back]

```       void glFrustum(
GLdouble left,
GLdouble right,
GLdouble bottom,
GLdouble top,
GLdouble zNear,
GLdouble zFar );
```

### PARAMETERS[Toc][Back]

```       Specify the coordinates for the left  and  right  vertical
clipping  planes.   Specify the coordinates for the bottom
and top horizontal clipping planes.  Specify the distances
to the near and far depth clipping planes.  Both distances
must be positive.
```

### DESCRIPTION[Toc][Back]

```       glFrustum() describes a perspective matrix that produces a
perspective  projection. The current matrix (see glMatrixMode())
is  multiplied  by  this  matrix  and  the  result
replaces  the  current  matrix,  as if glMultMatrix() were
called with the  following  matrix  as  its  argument:  {2
zNear}      /      {right      -      left}              0
A  0
0                        {2  zNear}  /  {top  -  bottom}
B  0
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 is GL_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 window, assuming
that  the eye is located at (0, 0, 0). -zFar specifies the
location of the far clipping plane. Both  zNear  and  zFar
must be positive.

Use  glPushMatrix()  and glPopMatrix() to save and restore
the current matrix stack.

```

### NOTES[Toc][Back]

```       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 (r) bits  of  depth  buffer  precision  are
lost. Because r approaches infinity as zNear approaches 0,
zNear must never be set to 0.
```

### ERRORS[Toc][Back]

```       GL_INVALID_VALUE is generated if zNear or zFar is not positive,
or if left = right, or bottom = top.

GL_INVALID_OPERATION  is  generated if glFrustum() is executed
between the execution of glBegin()  and  the  corresponding
execution of glEnd().
```

### ASSOCIATED GETS[Toc][Back]

```       glGet() with argument GL_MATRIX_MODE
glGet() with argument GL_MODELVIEW_MATRIX
glGet() with argument GL_PROJECTION_MATRIX
glGet() with argument GL_TEXTURE_MATRIX
glGet() with argument GL_COLOR_MATRIX

```

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