3DS Max坐標系與D3D左手系的簡單轉(zhuǎn)換方法
前幾天遇到一個將3DSMax的攝像機路徑導出供游戲過場動畫使用的需求。由于游戲中使用的是D3D左手系,所以需要考慮怎么從3DSMax使用的Z軸朝上的右手系轉(zhuǎn)換到D3D使用的Y軸朝上的左手系,如下圖所示:


攝像機路徑關鍵幀中包含了Position和Rotation,對Position我采用簡單將y-z對調(diào)的方法。Rotation用四元數(shù)表示,需要先沿X軸將Y軸旋轉(zhuǎn)至Z軸位置,變成標準的右手坐標系,再從標準右手系變成左手系(將z取負)。Max插件變換代碼如下:
1
c->GetValue(t , &pmat , ivalid , CTRL_RELATIVE);
2
rot.Set(pmat);
3
rot = rot * QFromAngAxis(PI * 0.5f , Point3(1.0f , 0.0f , 0.0f));
4
rot.z = -rot.z;

2

3

4

posted on 2013-06-08 22:31 Heath 閱讀(5052) 評論(1) 編輯 收藏 引用 所屬分類: Game Development