我有一个应用程序,它使用DirectX,因此是一个左手世界坐标系统,一个俯视正z的投影和投影到单位立方体中的投影,但z从0到1。如何使DirectX风格的世界/视图/投影矩阵适应OpenGL?
我移植这个应用程序的OpenGL和OpenGL具有不同的坐标系等,特别是右撇子,视图看起来顺着负z,并投影到真实单位立方体。
将DirectX矩阵调整为OpenGL最简单的方法是什么?世界空间的变化似乎很容易,只是通过翻转X轴,但我不完全确定如何改变视图/投影。我可以单独修改所有矩阵,然后将它们相乘并将它们发送给我的着色器。如果可能的话,我想尽量使用基于DirectX的坐标系尽可能保持最低点(即,我不想改变放置物体的位置,计算视角的方法等。 - 理想情况下,我“只有会权应当将其交由我的着色器之前,涂抹一些修改矩阵)
只要你不使用固定功能管道,就没有真正的区别。左手/右手协调的事情只不过是一种惯例,FFP和一些便利功能就是随之而来的。 – jalf 2011-01-01 11:33:29