2010-05-17 12 views
5

En mi aplicación de iPhone, necesito proyectar escenas en 3D en las coordenadas 2D de la pantalla para algunos cálculos. Mis objetos pasan por varias rotaciones, traducciones y escala. Así que pensé que primero tenía que multiplicar los vértices con la matriz ModelView, luego tengo que multiplicarlos con la matriz de proyección ortogonal.OpenGL ES 2.0 equivalente de glOrtho()?

¿Primero de todo estoy en el camino correcto?

Tengo la Matriz de Vista del Modelo, pero necesito la matriz de proyección. ¿Hay un equivalente glOrtho() en ES 2.0?

Respuesta

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; 

Para una resolución fija (1024x768 en mi caso para el iPad) que utiliza esta matriz y todo funciona como encanto :) He aquí la descripción completa los valores que se necesita para poner en su matriz: glOrtho.html

+0

gracias amigo esta es una muestra muy útil – sage444

3

manual page para glOrtho() describe las operaciones equivalentes, por lo que siempre que tenga la matriz a mano debería ser capaz de volver a implementarlo.

+1

404 página no encontrada – Nande

+1

@Nande ¡Gracias, corregidos! – unwind

Cuestiones relacionadas