Как правильно настроить альбомную проекцию ландшафта, используя OpenGL-ES 2.0 на iOS? - PullRequest
2 голосов
/ 29 ноября 2011

Это все в OpenGL ES 2.0 ...

Я пытаюсь смешать трехмерную перспективную проекцию с двухмерной ортогональной проекцией, чтобы в моей игре HUD сидел поверх 3D-сцены.

Игра работает в альбомной ориентации, и я очень запутался, как обращаться с ориентацией устройства.

Я визуализирую 3D-объекты с помощью подходящей проекционной матрицы и поворачиваю матрицу modelView и мое освещение на 90 градусов, чтобы 3D-сцена находилась в правильном направлении. Этот бит все отлично работает.

Моя проблема в том, что я не могу понять, как правильно настроить матрицу 2D-проекции, чтобы исходное положение находилось в верхнем левом углу, когда устройство находится в горизонтальной ориентации, а кнопка «Домой» слева.

Как правильно построить ортографическую матрицу, чтобы это произошло? Я сейчас использую это

// OrthoMatrix does the same as the old GLOrthof function (left, right, bottom, top, near, far);
projectionMatrix2D = mat4::OrthoMatrix(0, screenWidth, screenHeight , 0, -1.0, 1.0);

Однако это просто помещает начало координат в верхний левый угол, если устройство находится в портретном режиме, а кнопка «Домой» находится внизу, а вращение устройства в моей руке означает, что все на его стороне.

Стоит ли пытаться изменить матрицу 2D-проекции или мне нужно что-то еще делать?

1 Ответ

0 голосов
/ 06 декабря 2011

Я спросил об этом на Gamedev, но в более общем смысле и получил полезный ответ.

Как создать орфографический дисплей, который обрабатывает экран разных размеров?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...