0

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

这是我在MSDN发现:

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

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

这工作得很好,除了我不能轻易翻动我的顶点,因为我得到了CATIA的3D模型,不是原始的,所以我不能使用它。

(我知道行优先和列重大差异的,这并不重要)

你知道我可以从端口openGL的我旋转矩阵的DirectX?

回答

2

关于霸道的你根本坐标系统和给定的旋转改造,在右手坐标系中的正转用右手规则确定,反之亦然。 因此,如果您有两个坐标系统与不同的指向性在旋转角度前翻转标志您已经调整了旋转矩阵。你已经移植了你的旋转矩阵:)

+0

谢谢你的回复。 – Pep 2013-03-19 16:36:23

+0

谢谢你的回复。其实,你是对的。 我刚刚发现了一篇真正可以理解的文章,总结了一种方法,它为我节省了大量时间[OpenGL和Direct3D之间的转换矩阵](http://cv4mar.blogspot.fr/2009/03/transformation-matrices -between-opengl.html) – Pep 2013-03-19 16:50:31

+0

不客气。当我看到你是一个新用户时,只要提醒一下,你应该通过点击向上/向下投票按钮下面的绿色箭头来标记这个问题。 – Mandark 2013-03-20 08:16:02