glFrustum-Funktion

Die glFrustum-Funktion multipliziert die aktuelle Matrix mit einer Perspektivmatrix.

Syntax

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

Parameter

left

Die Koordinate für die links-vertikale Clippingebene.

right

Die Koordinate für die rechte vertikale Clippingebene.

bottom

Die Koordinate für die untere horizontale Clippingebene.

top

Die Koordinate für die untere horizontale Clippingebene.

zNear

Die Entfernungen zur nahezu tiefen Clippingebene. Muss positiv sein.

zFar

Die Entfernungen zu den tiefen Clippingebenen. Muss positiv sein.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
zNear oder zFar war nicht postitiv.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glFrustum-Funktion beschreibt eine Perspektivmatrix, die eine perspektivische Projektion erzeugt. Die Parameter (links, unten, zNear) und (rechts, oben, zNear) geben die Punkte auf der nahen Clippingebene an, die den unteren linken bzw. oberen rechten Ecken des Fensters zugeordnet sind, wobei vorausgesetzt wird, dass sich das Auge bei (0,0,0, 0) befindet. Der zFar-Parameter gibt die Position der fernen Clippingebene an. Sowohl zNear als auch zFar müssen positiv sein. Die entsprechende Matrix ist in der folgenden Abbildung dargestellt.

Diagramm der Perspektivmatrix, die eine perspektivische Projektion erzeugt.Formeln mit der glFrustum-Funktion, die eine Perspektivmatrix beschreibt.

Die glFrustum-Funktion multipliziert die aktuelle Matrix mit dieser Matrix, wobei das Ergebnis die aktuelle Matrix ersetzt. Das heißt, wenn M die aktuelle Matrix und F die Frustum-Perspektivmatrix ist, ersetzt glFrustum M durch M F.

Verwenden Sie glPushMatrix und glPopMatrix , um den aktuellen Matrixstapel zu speichern und wiederherzustellen.

Die Genauigkeit des Tiefenpuffers wird von den für zNear und zFar angegebenen Werten beeinflusst. Je größer das Verhältnis von zFar zu zNear ist, desto weniger effektiv ist der Tiefenpuffer bei der Unterscheidung zwischen oberflächennahen Oberflächen. Wenn

Gleichung, die das Verhältnis von weit zu nah zeigt.

die Genauigkeitdes Tiefenpuffers geht ungefähr 2 (r)-Bits verloren. Da sich r der Unendlichkeit nähert, wenn sich zNear 0 nähert, sollten Sie zNear niemals auf 0 festlegen.

Die folgenden Funktionen rufen Informationen zu glFrustum ab:

glGet mit Argument GL_MATRIX_MODE

glGet mit argument GL_MODELVIEW_MATRIX

glGet mit Argument GL_PROJECTION_MATRIX

glGet mit Argument GL_TEXTURE_MATRIX

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glEnd

glGet

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glPushMatrix

glViewport