我一直在空間模擬一段時間了。 起初我使用我自己的3D引擎與軟件光柵器。旋轉太空模擬器/遊戲太空船模型
但是,當實施紋理的時間到期時,我放棄了。 現在我在某段時間後重新開始,現在我正在使用Opengl(使用SDL)來渲染3D模型。
但現在我打了另一堵磚牆。
我無法弄清楚如何進行適當的旋轉。 作爲一個空間模擬器我想類似的控制使用
glRotatef(angleX, 1.0f, 0.0f, 0.0f);
glRotatef(angleY, 0.0f, 1.0f, 0.0f);
glRotatef(angleZ, 0.0f, 0.0f, 1.0f);
或相似,
不正確,如果我旋轉模型(飛船)第90度工作向左,然後flighsim
旋轉它「向上」。 它會滾動。
下面是一個圖像,說明我的問題。
我試了幾個招數,試圖解決這個,但不知何故,我覺得我失去了一些東西。 它不能幫助模擬器樣式旋轉的例子幾乎不可能找到。
因此,我正在尋找示例,鏈接和旋轉3d模型(如飛船,飛機)的理論。
我是否應該使用3個向量(左,上,前)作爲方向,因爲我還必須計算諸如推力器的加速度以及隨着旋轉(方向?)和模型透視點像火箭發動機這樣的方向。
我不是很好的數學和努力可視化解決方案只給出頭痛
我終於破解了! 我使用描述模型方向的矩陣。 當我按下向上鍵時,一個函數調用創建一個旋轉矩陣的函數,我旋轉x所需的量,然後將其乘以模型方向矩陣。 – kvasan 2009-08-06 03:54:10