glOrtho: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K |
K (Kategorisierung) |
||
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 8: | Zeile 8: | ||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''glOrtho'''(''left'', ''right'', ''bottom'', ''top'', ''znear'', ''zfar'' : double); <br> | procedure '''glOrtho'''(''left'', ''right'', ''bottom'', ''top'', ''znear'', ''zfar'' : double); <br> | ||
− | |||
Zeile 18: | Zeile 17: | ||
|- | |- | ||
! '''znear, zfar''' | ! '''znear, zfar''' | ||
− | | Setzen die Nah- und Fern- Clippingplane. Wenn die Fläche hinter dem User sein soll müssen die Angaben negativ sein. | + | | Setzen die Nah- und Fern- Clippingplane. Wenn die Fläche hinter dem User sein soll, müssen die Angaben negativ sein. |
|} | |} | ||
Zeile 25: | Zeile 24: | ||
'''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''' | '''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. | + | 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 | + | 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. |
<div align="center"> Die erstellte Matrix hat die Form: [[Bild:GlOrtho_Matrix.png]]</div> | <div align="center"> Die erstellte Matrix hat die Form: [[Bild:GlOrtho_Matrix.png]]</div> | ||
Zeile 35: | Zeile 34: | ||
''t'' = ''top'', ''b'' = ''bottom''<br> | ''t'' = ''top'', ''b'' = ''bottom''<br> | ||
− | '''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 | + | '''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.) <br> |
− | Damit dient die Z- | + | Damit dient die Z-Koordiante nur noch zur "Anordnung"" von Vorder- und Hintergründen auf der 2D-Zeichenfläche. |
+ | |||
+ | Aus diesem Grunde wird diese Form für alle 2D-Anwendungsfälle benutzt. Z.B. 2D-Spiele (Side-Scroller, Jump&Run), [[HUD]]s, Menüs, usw. . | ||
{|width="100%" {{Prettytable}} | {|width="100%" {{Prettytable}} | ||
Zeile 49: | Zeile 50: | ||
|} | |} | ||
− | {{Hinweis|Wie üblich werden | + | {{Hinweis|Wie üblich werden Objekte, die eine kleinere Z-Koordinate als ''znear'' bzw. eine größere als ''zfar'' haben, nicht gezeichnet.}} |
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | * '''GL_INVALID_VALUE''' wird generiert wenn zNear gleich zFar, left gleich right oder top gleich bottom ist. | + | * '''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. | + | * '''GL_INVALID_OPERATION''' wird generiert, wenn '''glOrtho''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. |
== Zugehörige Werterückgaben == | == Zugehörige Werterückgaben == | ||
− | [[glGet]] mit Token [[glGet#GL_MATRIX_MODE|GL_MATRIX_MODE]] | + | [[glGet]] mit Token [[glGet#GL_COLOR_MATRIX|GL_COLOR_MATRIX]] |
− | [[glGet]] mit Token [[glGet#GL_MODELVIEW_MATRIX|GL_MODELVIEW_MATRIX]] | + | |
− | [[glGet]] mit Token [[glGet#GL_PROJECTION_MATRIX|GL_PROJECTION_MATRIX]] | + | [[glGet]] mit Token [[glGet#GL_MATRIX_MODE|GL_MATRIX_MODE]] |
+ | |||
+ | [[glGet]] mit Token [[glGet#GL_MODELVIEW_MATRIX|GL_MODELVIEW_MATRIX]] | ||
+ | |||
+ | [[glGet]] mit Token [[glGet#GL_PROJECTION_MATRIX|GL_PROJECTION_MATRIX]] | ||
+ | |||
[[glGet]] mit Token [[glGet#GL_TEXTURE_MATRIX|GL_TEXTURE_MATRIX]] | [[glGet]] mit Token [[glGet#GL_TEXTURE_MATRIX|GL_TEXTURE_MATRIX]] | ||
+ | == Links == | ||
+ | http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml | ||
== Siehe auch == | == Siehe auch == | ||
Zeile 72: | Zeile 81: | ||
[[Kategorie:GL|Ortho]] | [[Kategorie:GL|Ortho]] | ||
+ | [[Kategorie:GL1.0|Ortho]] |
Aktuelle Version vom 18. Juni 2011, 15:36 Uhr
Inhaltsverzeichnis
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.
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.
Aus diesem Grunde wird diese Form für alle 2D-Anwendungsfälle benutzt. Z.B. 2D-Spiele (Side-Scroller, Jump&Run), HUDs, Menüs, usw. .
Othogonal | Perspektivisch |
---|---|
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_COLOR_MATRIX
glGet mit Token GL_MATRIX_MODE
glGet mit Token GL_MODELVIEW_MATRIX
glGet mit Token GL_PROJECTION_MATRIX
glGet mit Token GL_TEXTURE_MATRIX
Links
http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml
Siehe auch
glFrustum, glMatrixMode, glMultMatrix, glPushMatrix, glViewport, gluPerspective