OpenGL ES 2.0 эквивалент Glorto ()?
-
27-09-2019 - |
Вопрос
В моем приложении 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()
Описывает эквивалентные операции, так что до тех пор, пока у вас есть матрица, должна быть в состоянии повторно реализовать ее.