gl.Frustum(left, right, bottom, top, zNear, zFar)
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.
#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.
#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