Я пытаюсь сделать несколько квадов, расположенных в плоскости (z = 0), с помощью ортогональной проекции. Я настроил матрицу проекции после прочтения формулы для матрицы ортогональной проекции? , но я думаю, что сделал что-то не так.
Моей первой попыткой была следующая матрица. W и H - ширина и высота моего желаемого окна просмотра, которое составляет 640x640 в следующих примерах:
˹ 2/w 0 0 0 ˺
| 0 2/h 0 0 |
| 0 0 0 0 |
˻ 0 0 0 1 ˼
Вот что я получил, когда рендерил четырехугольник, угол поворота которого был в (0,0,0):
Поскольку он был перевернут по вертикали, я изменил свою матрицу на:
˹ 2/w 0 0 0 ˺
| 0 -2/h 0 0 |
| 0 0 0 0 |
˻ 0 0 0 1 ˼
Я получил:
Затем я попытался переместить мой квадроцикл, и результаты оказались неожиданными. Я хотел, чтобы X и Y трехмерного пространства соответствовали окнам просмотра. Однако вот что произошло, когда я переместил квад по оси X:
Движение по оси Y дало столь же неожиданные результаты:
Как я могу исправить свою матрицу так, чтобы оси X и Y трехмерного пространства совпадали с осями видового экрана? Большое спасибо заранее.