Irgendwie ist der Mittelpunkt trotzdem noch mitten im Fenster. Ich kann auch die Zeile glOrtho(0, Width, 0, Height, 0, 0); weglassen und es sieht immernoch genauso aus.
Ich rufe den Code oben bei OnResize auf und bei der Initialisierung der Engine.
Das ist auch kein Wunder... Bei glortho bist du auch nicht ineinem 2d, sonden meines wissens nach in einem 3d - Modus... um den Ortho-2d-Modus zu erhalten müsste es so aussehen:
Code:
glViewport(0, 0, clientWidth, clientHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluOrtho2D(0,clientwidth,0,clientheight);
glMatrixMode(GL_MODELVIEW);
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Ich denke mal nicht großartig... Das dir der normale Ortho schon so 2d-Mäßig vorkam, mag wohl daran liegen, dass die Objekte im ortho-Modus alle gleichgroß sind, egal wie "weit weg" sie sind (schlagt mich, wenn es anders ist :blink: )
Ich denke aber mal, dass die der echte 2D-Ortho lieber ist... da hat man wenigstens die koordianten am rechten Fleck
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Nein, das reicht nicht.Wenn du 2D in OpenGL machen willst, musst du mittels gluOrtho(2D) in eine orthogonale Projektion wechseln, denn in dieser werden die Objekte nicht in die Tiefe hinein verzerrt.Das bedeutet, das z.B. bei eine, Quader der eigentlich nach hinten ragt, sowohl die vordere Fläche als auch die hintere Fläche auf dem Bildschirm später die gleiche Größe haben.Bei einer normalen dreidimensionalen Projekten (also OpenGLs Standard) werden Objekte ja in die Tiefe "verzerrt" um den 3D-Eindruck auf dem Monitor entstehen zu lassen.Das einfach nicht-löschen des Tiefenpuffers würde dir da gar nix bringen.
Nein, tut mir leid. Hab die Frage irgendwie blöd gestellt, ist mir aber jetzt erst aufgefallen, wo ich deine Antwort sehe.
Ich meine wenn ich schon mit gluOrtho2D in den 2D Mode gewechselt habe und somit ja eigentlich den Tiefenpuffer nicht nutze, muss ich den dann trotzdem bei vor jedem Rendern löschen?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Kommt drauf an, denn der Tiefenpuffer hat ja auch in der orthogonalen 2D-Ansicht noch seinen Sinn.Damit kann man z.B. wenn man ne GUI darstellen will die Anzeigereihenfolge von Fenster o.Ä. realisieren.Also ist der in der 2D-Ansicht immernoch zum Sortieren von Objekten nützlich. Und ausserdem wird der immer verwendet, auch wenn du ihn nicht löschen tust werden dort Werte hineingeschrieben und Tiefentests gemacht.Wenn du den Tiefenpuffer also gar nicht brauchst, dann musst du in via glDisable(GL_DEPTH_TEST) komplett deaktivieren.
Nutz man den Tiefenpuffer nicht? ich bin mir nicht ganz sicher, aber kann man nicht dennoch Z-werte angeben, z.b. um zu garantieren, dass das Hintergrundbild auch wirklich im Hintergrund ist (z.b. bei 2D Jump and Runs)? Ich mein da war mal was 8ich garantiere für nichts!)
Edit: Shit, SoS war schneller.....
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.