2010-05-17 11 views
5

Nella mia app per iPhone, ho bisogno di proiettare la scena 3D nelle coordinate 2D dello schermo per alcuni calcoli. I miei oggetti passano attraverso varie rotazioni, traduzioni e ridimensionamento. Così ho pensato di dover prima moltiplicare i vertici con la matrice ModelView, quindi ho bisogno di moltiplicarlo con la matrice di proiezione ortogonale.OpenGL ES 2.0 equivalente di glOrtho()?

Prima di tutto sono sulla strada giusta?

Ho la matrice vista modello, ma ho bisogno della matrice di proiezione. Esiste un equivalente glOrtho() in ES 2.0?

risposta

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; 

Per una risoluzione fissa (1024x768 nel mio caso per iPad) Ho usato questa matrice e tutto funziona come fascino :) Ecco una descrizione completa quali valori è necessario mettere nella vostra matrice: glOrtho.html

+0

grazie amico questo è un esempio molto utile – sage444

3

Il manual page per glOrtho() descrive le operazioni equivalenti, in modo da avere la matrice a portata di mano dovrebbe essere in grado di ri-implementarlo.

+1

404 pagina non trovata – Nande

+1

@Nande Grazie, risolto! – unwind