2010-05-17 3 views
5

В моем приложении iphone мне нужно спроектировать 3d-сцену в 2D-координаты экрана для некоторых вычислений. Мои объекты проходят различные повороты, переводы и масштабирование. Поэтому я решил, что мне нужно сначала умножить вершины на матрицу ModelView, затем мне нужно умножить ее на матрицу ортогональных проекций.OpenGL ES 2.0 эквивалент glOrtho()?

Прежде всего, на правильном пути?

У меня есть модель View Matrix, но нужна матрица проекции. Есть ли эквивалент glOrtho() в ES 2.0?

ответ

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; 

При фиксированном разрешении (1024x768 в моем случае для IPad) Я использовал эту матрицу, и все работает как шарм :) Вот полное описание, какие значения нужно положить в матрице: glOrtho.html

+0

спасибо, чувак, это очень полезный образец – sage444

3

manual page для glOrtho() описывает эквивалентные операции, поэтому, если у вас есть удобная матрица, она должна быть способна повторно реализовать ее.

+1

404 страница не найдена – Nande

+1

@Nande Спасибо, исправлено! – unwind