从OpenGL到DirectX的投影矩阵

时间:2013-03-19 10:52:40

标签: opengl directx coordinate-systems coordinate-transformation

我有一个使用openGL的应用程序,我必须将它移植到DirectX。 总结我的问题:如何将基于右手坐标系的旋转矩阵移植到左手坐标系?

这是我在MSDN上找到的:

  • 翻转三角形顶点的顺序,以便系统遍历它们 从前面顺时针方向。换句话说,如果顶点是v0,v1, v2,将它们作为v0,v2,v1传递给Direct3D。

  • 使用视图矩阵在z方向上将世界空间缩放-1。要执行此操作,请翻转_31,_32,_33和。的符号 _34用于视图矩阵的D3DMATRIX结构成员。

这很好用,除了我不能轻易翻转我的顶点,因为我从CATIA获得了一个不是原始的3D模型,所以我不能使用它。

(我知道行主要和列主要区别,没关系)

你知道如何将我的旋转矩阵从openGL移植到DirectX吗?

1 个答案:

答案 0 :(得分:2)

关于底层坐标系的旋向性和给定的旋转变换,右手坐标系中的正旋转由右手坐标系决定,反之亦然。 因此,如果您通过在旋转角度前面翻转符号来使用两个具有不同旋向性的坐标系,则调整旋转矩阵。您已移植了旋转矩阵:)