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