Вопрос

В моем приложении iPhone мне нужно проецировать 3D-сцену в 2D координаты экрана для некоторых расчетов. Мои объекты проходят различные вращения, переводы и масштабирование. Поэтому я подумал, что мне нужно сначала умножить вершины с матрицей ModelView, потом мне нужно умножить его с ортогональной матрицей проекции.

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

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

Это было полезно?

Решение

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) я использовал эту матрицу, и все работает как Charm :) Вот полное описание, какие значения вам нужно поставить в свою матрицу: Glourtho.html.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top