【发布时间】:2010-09-12 16:04:59
【问题描述】:
我有一个使用 DirectX 的应用程序,因此是一个左手世界坐标系统,一个向下看正 z 的视图和一个投影到单位立方体但 z 从 0..1 开始的投影。
我正在将此应用程序移植到 OpenGL,而 OpenGL 具有不同的坐标系等。特别是它是右手的,视图沿负 z 方向向下看,并且投影到真实的单位立方体中。
使 DirectX 矩阵适应 OpenGL 的最简单方法是什么?世界空间的改变似乎很容易,只需翻转 x 轴,但我不完全确定如何改变视图/投影。在将它们相乘并将它们发送到我的着色器之前,我可以单独修改所有矩阵。如果可能的话,我想尽可能地坚持使用基于 DirectX 的坐标系(即我不想改变我放置对象的位置,我如何计算我的视锥体等 - 理想情况下,我'只会在将它们交给我的着色器之前对矩阵进行一些修改。)
【问题讨论】:
-
只要不使用固定函数流水线,并没有真正的区别。左手/右手坐标只是一个约定,FFP 和一些便利函数遵循。