2010-05-17 8 views
5

In meiner iPhone App muss ich 3D-Szene in die 2D-Koordinaten des Bildschirms für einige Berechnungen projizieren. Meine Objekte durchlaufen verschiedene Rotationen, Übersetzungen und Skalierungen. Also dachte ich mir, dass ich zuerst die Vertices mit der ModelView-Matrix multiplizieren muss und dann mit der orthogonalen Projektionsmatrix multiplizieren muss.OpenGL ES 2.0 Äquivalent von GlOrtho()?

Zunächst bin ich auf dem richtigen Weg?

Ich habe die Model View Matrix, aber brauche die Projektionsmatrix. Gibt es eine GlOrtho() Entsprechung in ES 2.0?

Antwort

13
mat4 projectionMatrix = mat4(2.0/768.0, 0.0, 0.0, -1.0, 
           0.0, 2.0/1024.0, 0.0, -1.0, 
           0.0, 0.0, -1.0, 0.0, 
           0.0, 0.0, 0.0, 1.0);       

gl_Position = position; 
gl_Position *= rotationMatrix; 
gl_Position.x -= translateX; 
gl_Position.y -= translateY; 
gl_Position *= projectionMatrix; 

Für eine feste Auflösung (1024x768 in meinem Fall für iPad) ich diese Matrix verwendet und alles funktioniert wie Charme :) Hier vollständige Beschreibung, was Sie in Ihrer Matrix setzen Werte müssen: glOrtho.html

+0

danke dude das ist sehr nützliche Beispiel – sage444

3

Die manual page für glOrtho() beschreibt die entsprechenden Operationen, so lange wie Sie die Matrix handy in der Lage sein sollte, es wieder zu implementieren.

+1

404 Seite nicht gefunden – Nande

+1

@Nande Danke, behoben! – unwind