Frage

In meinem iphone app, ich brauche für einige Berechnungen 3D-Szene in die 2D-Koordinaten des Bildschirms zu projizieren. Meine Objekte gehen durch verschiedene Drehungen, Übersetzungen und Skalierung. Also ich dachte, ich muß zuerst die Eckpunkte mit Modelview Matrix multiplizieren, dann muß ich es mit der Orthogonal Projektionsmatrix multiplizieren.

Vor allem Uhr auf dem richtigen Weg?

Ich habe die Model-View-Matrix, sondern muß die Projektionsmatrix. Gibt es eine glOrtho () äquivalent in ES 2.0?

War es hilfreich?

Lösung

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) habe ich diese Matrix und alles funktioniert wie Charme :) Hier vollständige Beschreibung, welche Werte Sie müssen in Ihrer Matrix setzen: glOrtho.html

Andere Tipps

Die Manpage glOrtho() beschreibt die entsprechenden Operationen , so lange, wie Sie die Matrix zur Hand haben sollte neu implementieren es in der Lage sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top