glOrtho: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Beschreibung)
K
Zeile 1: Zeile 1:
{{Bildwunsch|Ein Objekt (z.B. Würfel) in Orthogonaler und Perspektivischer Projektion vergleichen.}}
 
 
= glOrtho =
 
= glOrtho =
  
Zeile 39: Zeile 38:
 
Damit dient die Z-koordiante nur noch zur "Anordnung"" von Vorder- und Hintergründen auf der 2D-Zeichenfläche.
 
Damit dient die Z-koordiante nur noch zur "Anordnung"" von Vorder- und Hintergründen auf der 2D-Zeichenfläche.
  
 +
{|width="100%" {{Prettytable}}
 +
!Othogonal
 +
!Perspektivisch
 +
|-
 +
|[[Bild:Orthomode_Quads.jpg|thumb|center|300px|Quads an verschiedenen Stellen auf der X-Achse im Orthomodus]]
 +
|[[Bild:GluPerspective_Quads_X.jpg|thumb|center|300px|''Zum Vergleich:'' Quads an verschiedenen Stellen der X-Achse im perspektivischen Modus]]
 +
|-
 +
|[[Bild:Orthomode_Quads.jpg|thumb|center|300px|die gleichen Quads mit veränderten Positionen auf der Z-Achse im orthogonalen Modus]]
 +
|[[Bild:GluPerspective_Quads_Z.jpg|thumb|center|300px|''Zum Verlgeich:'' Die gleiche Reihe wie ''oben'', nur mit veränderten Positionen auf der Z-Achse, wieder im perspektivischen Modus]]
 +
|}
  
[[Bild:Orthomode_Quads.jpg|thumb|left|300px|Quads an verschiedenen Stellen auf der X-Achse im Orthomodus]]
+
{{Hinweis|Wie üblich werden objekte die eine kleinere Z-Koordinate als ''znear'' bzw. eine größere als ''zfar'' haben, nicht gezeichnet.}}
[[Bild:GluPerspective_Quads_X.jpg|thumb|right|300px|''Zum Vergleich:'' Quads an verschiedenen Stellen der X-Achse im perspektivischen Modus]]
 
<br>
 
[[Bild:Orthomode_Quads.jpg|thumb|left|300px|die gleichen Quads mit veränderten Positionen auf der Z-Achse im orthogonalen Modus]]
 
[[Bild:GluPerspective_Quads_Z.jpg|thumb|right|300px|''Zum Verlgeich:'' Die gleiche Reihe wie ''oben'', nur mit veränderten Positionen auf der Z-Achse, wieder im perspektivischen Modus]]
 
 
 
  
{{Hinweis|Objekte die einen kleineren Z-Koordinate als ''znear'' bzw. einen größeren als ''zfar'' haben, werden nicht gezeichnet.}}
 
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==

Version vom 28. August 2006, 21:15 Uhr

glOrtho

Name

glOrtho - aktiviert einen orthogonalen 2D-Rendermodus


Delphi-Spezifikation

procedure glOrtho(left, right, bottom, top, znear, zfar : double); 



Parameter

left, right, bottom, top Definieren die 4 Clipping Planes.
znear, zfar Setzen die Nah- und Fern- Clippingplane. Wenn die Fläche hinter dem User sein soll müssen die Angaben negativ sein.


Beschreibung

glOrtho erstellt eine Matrix für Parallel-Projektion. Die aktuelle Matrix wird dabei mit der neu erstellten Matrix multipliziert. Das bedeutet, wenn M die aktuelle und O die orthogonale Matrix ist, ergibt sich die neue Matrix aus: M := M*O

Benutzen Sie glPushMatrix und glPopMatrix um den aktuellen Matrixstack zu speichern und zu laden.

Die beiden Punkte (left, bottom, -near) und (right, top, -near) befinden sich auf der Nah-Clipping Plane und werden auf die linke-untere und rechte-obere Ecke des Fensters gemappt/abgebildet. Dabei wird die Position des Auges an Position (0,0,0) angenommen. -far bestimmt die Position der Fernen-Clipping Plane. Beide Ebenen, die Nahe und die Ferne Schnittebene (Clipping Plane), können negative Werte annehmen.

Die erstellte Matrix hat die Form: GlOrtho Matrix.png

mit f = zFar, n = zNear
l = left, r = right
t = top, b = bottom

glOrtho schaltet OpenGL praktisch in einen 2D-Modus, wo die Z-Koordiante keine Rolle mehr im Bezug auf die letztendliche Größe eines Objektes hat (weit entfernte Objekte (mit hoher Z-Koordinate) werden genau so groß gezeichnet, wie Nahe.)
Damit dient die Z-koordiante nur noch zur "Anordnung"" von Vorder- und Hintergründen auf der 2D-Zeichenfläche.

Othogonal Perspektivisch
Quads an verschiedenen Stellen auf der X-Achse im Orthomodus
Zum Vergleich: Quads an verschiedenen Stellen der X-Achse im perspektivischen Modus
die gleichen Quads mit veränderten Positionen auf der Z-Achse im orthogonalen Modus
Zum Verlgeich: Die gleiche Reihe wie oben, nur mit veränderten Positionen auf der Z-Achse, wieder im perspektivischen Modus
Info DGL.png Wie üblich werden objekte die eine kleinere Z-Koordinate als znear bzw. eine größere als zfar haben, nicht gezeichnet.


Fehlermeldungen

  • GL_INVALID_VALUE wird generiert wenn zNear gleich zFar, left gleich right oder top gleich bottom ist.
  • GL_INVALID_OPERATION wird generiert wenn glOrtho innerhalb eines glBegin-glEnd Blocks aufgerufen wird.


Zugehörige Werterückgaben

glGet mit Token GL_MATRIX_MODE
glGet mit Token GL_MODELVIEW_MATRIX
glGet mit Token GL_PROJECTION_MATRIX
glGet mit Token GL_TEXTURE_MATRIX



Siehe auch

glFrustum, glMatrixMode, glMultMatrix, glPushMatrix, glViewport, gluPerspective