[OpenGL]glOrtho
-
hi,
hätte da mal ne frage:
das mit dem orthografischem Koordinatensystem hb ich noch nich so ganz verstanden. muss man das unter ogl verwenden oder kann man auch mit den screen-koordinaten arbeiten? und wenn man damit arbeiten muss, kennt jemand n tutorial welches das gut erklärt? oder kann mir das jemand erklären?
ich hatte bisher ein beispiel damit (im 2d-raum) und da war irgendwie
glOrtho(-10, 10, -10, 10, -10, 10);
und danach wurde n viereckiges polygon gezeichnet von -5,-5 bis -8,-8 (von links oben bis rechts unten). un das war ganz untem im fenster rechts. aber wenn ich jetzt statt -8,-8 -5,-8 gesagt hab wars zwar noch auf gleicher höhe jedoch viel weiter links als rechts wie ich es jetzt erwartet hätte...
kann mir das einer erklären?
thx
mfg
Black Sting
-
Die orthografische bzw. perspektivische Projektion sorgt ja lediglich dafür, daß Deine "Universums-Koordinaten" in 3D irgendwie auf Deinen Bildschirm (2D) gemappt werden... und erst am Ende hast Du Screen-Koordinaten...
Bei der perspektivischen Projektion wird eben Deine "Perspektive" einbezogen, so wie Du's real auch sehen würdest... weiter entfernte "gleichgroße" Dinge wirken kleiner und zentraler...
Wie stark genau hängt halt von den exakten Einstellungen der Matrix ab, FOV, etc.wissen.de schrieb:
ortho ...
[griechisch]
Wortbestandteil mit der Bedeutung "gerade, recht", "richtig"; wird zuweilen zu orth ... vor einem Vokal.
Grafisch / graphisch bedeutet eigentlich "Geschriebenes", ist aber allgemeingültig, für meinetwegen "Dargestelltes" oder so...
Die orthografische Projektion als Matrix kackt also auf die Perspektive. Sie stellt alles gleich groß da (jedenfalls NICHT entfernungsabhängig) und zentralisiert auch nichts o.ä. ...
Die Perspektivische Projektion halt also eine (abgeschnittene) Pyramide mit quadratischer Grundfläche als Frustrum.
Die Orthografische einen Quader.Du kannst Dir auch selber lustige eigene Projektionsmatrizen überlegen, und den 3D-Raum z.B. auf eine Gerade abbilden...
...oder in Polarkoordinaten umrechnen...Dann noch'n paar wilde Farben... fertig ist der Psycho-Shooter...
P.S.: Ich schreib' hier nur so 'ne allgemeine Abhandlung, weil ich dachte, Du kommst mit irgendwas Grundsätzlichem noch nicht zurecht. Sag bescheid wenn ich mich irre...
-
hi, erstmal danke für die ausfürliche antwort!
also so wie ich des verstanden hab, kann man das glOrtho nicht verwenden wenn man was perspektivisch darstellen will? (first person kamera im shooter oder so). gibts dafür auch so ne "vorgefertigte" funktion wie glOrtho? oder muss man das sich alles selbst basteln?
thx
mfg
black Sting
-
Black Sting schrieb:
hi, erstmal danke für die ausfürliche antwort!
also so wie ich des verstanden hab, kann man das glOrtho nicht verwenden wenn man was perspektivisch darstellen will? (first person kamera im shooter oder so). gibts dafür auch so ne "vorgefertigte" funktion wie glOrtho? oder muss man das sich alles selbst basteln?
thx
mfg
black StingBin kein OpenGL'er, aber ein schneller Griff nach gOOgle brachte folgendes:
<a href= schrieb:
http://www.geocities.com/SiliconValley/5759/kapitel5.html">
Parallel oder perspektivischOpenGL unterscheidet zwischen zwei grundlegend verschiedenen Darstellungsformen, der sog. Parallelprojektion (Orthogonalprojektion) und der perspektivischen Darstellung. Erstere wird vor allem in CAD- Anwendungen verwendet, wobei alle Teile der Szene, egal, wo sie sich im Verhältnis zu Betrachter befinden, in ihrer wirklichen Größe gezeichnet werden. Verwendet man hingegen eine perspektivische Darstellung, so werden Objekte um so kleiner gezeichnet, je weiter sie vom Betrachter entfernt sind. So ist z.B. ein Würfel streng genommen kein Würfel mehr, da er ja verzerrt wird. Auch in der Natur ist dies so, d.h. die perspektivische Darstellung erscheint natürlicher als die parallele.
gluPerspective(30.0, gldAspect, 0.0, 10.0);
glOrtho(-gldAspect, gldAspect, -1, 1, -10.0, 10.0);
Die obigen Programmzeilen zeigen, wie Sie mit OpenGL diese beiden Projektionsarten erzeugen können (natürlich verwendet man immer nur entweder die eine, oder die andere).
Die Funktion gluPerspective(...) verlangt vier Parameter. Als erstes muß der vertikale Blickwinkel in Grad (etwa 30 oder 45 Grad) angegeben werden. Nun folgt das Seitenverhältnis Ihrer Szene, teilen Sie dazu die Breite durch die Höhe (width/ height). Die letzten beiden Parameter legen den nähesten und entferntesten sichtbaren Punkt der Szene fest.
glOrtho(...), zuständig für die Parallelprojektion, verlangt sechs Parameter, und zwar den Punkt ganz links in der Szene, ganz rechts, ganz oben und ganz unten. Die beiden letzen Parameter legen wieder den nähesten und entferntesten Punkt der Szene fest.
-
hi,
danke vielmals!
ich werd einfach mal n bissel rumprobieren.
danke
mfg
Black Sting