Bezeichnung
gl.Frustum -- multipliziert die aktuelle Matrix mit einer perspektivischen Matrix
Übersicht
gl.Frustum(left, right, bottom, top, zNear, zFar)
Beschreibung
gl.Frustum() beschreibt eine perspektivische Matrix, die eine perspektivische Projektion erzeugt. (left,bottom,-zNear) und (right,top,-zNear) geben die Punkte auf der nahen Ausschnittebene an, die auf die linke bzw. rechte untere und obere Ecke des Fensters abgebildet sind, vorausgesetzt, das Auge befindet sich bei (0, 0, 0, 0). -zFar gibt die Position der entfernten Ausschnittebene an. Sowohl zNear als auch zFar müssen positiv sein. Konsultieren Sie eine OpenGL-Referenz für die entsprechende Matrix.

Die aktuelle Matrix wird mit dieser Matrix multipliziert, wobei das Ergebnis die aktuelle Matrix ersetzt. Das heißt, wenn M die aktuelle Matrix und F die perspektivische Matrix ist, dann wird M durch M*F ersetzt.

Benutzem Sie gl.PushMatrix() und gl.PopMatrix() um den aktuellen Matrixstapel zu speichern und wiederherzustellen.

Die Genauigkeit des Tiefenpuffers wird durch die für zNear und zFar angegebenen Werte beeinflusst. Je größer das Verhältnis von weit zu nah ist, desto weniger effektiv ist der Tiefenpuffer bei der Unterscheidung zwischen Oberflächen, die nahe beieinander liegen. Wenn

 
r = zFar / zNear

gehen ungefähr ld(r) Bits der Genauigkeit des Tiefenpuffers verloren. Da r sich der Unendlichkeit nähert, wenn zNear sich Null nähert, darf zNear niemals auf Null gesetzt werden.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
left
gibt die Koordinate für die linke vertikale Ausschnittebene an
right
gibt die Koordinate für die rechte vertikale Ausschnittebene an
bottom
gibt die Koordinate für die untere horizontale Ausschnittebene an
top
gibt die Koordinate für die obere horizontale Ausschnittebene an
zNear
gibt den Abstand zur Ausschnittebene mit niedriger Tiefe an; muss positiv sein.
zFar
gibt den Abstand zur Ausschnittebene mit großer Tiefe an; er muss positiv sein.
Fehler
#GL_INVALID_VALUE wird erzeugt, wenn zNear oder zFar, oder wenn left = right, oder bottom = top, oder zNear = zFar nicht positiv ist.

#GL_INVALID_OPERATION wird erzeugt, wenn gl.Frustum() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.Get() mit dem Argument #GL_MATRIX_MODE

gl.Get() mit dem Argument #GL_MODELVIEW_MATRIX

gl.Get() mit dem Argument #GL_PROJECTION_MATRIX

gl.Get() mit dem Argument #GL_TEXTURE_MATRIX


Navigation zeigen