我正在尝试使用正交投影渲染位于平面(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 ˼
我获得了 :
然后我试图移动我的四边形,结果出乎意料。我希望 3D 空间的 X 和 Y 与视口的 X 和 Y 相匹配。然而,当我沿 X 轴移动四边形时,发生了以下情况:
沿 Y 轴移动给出了同样出乎意料的结果:
如何修复我的矩阵,使 3D 空间的 X 和 Y 轴与视口的 X 轴和 Y 轴相匹配?提前谢谢了。