[程式] 關於openGL球滾動的問題

看板GameDesign (遊戲設計)作者 (絕對可能)時間16年前 (2008/10/04 08:49), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/2 (看更多)
小弟想畫一顆球在地上滾動 球會隨著移動方向跟著轉動 小弟是這樣寫的 glRotatef(zrot,1.0f,0.0f,0.0f); glRotatef(xrot,0.0f,0.0f,1.0f); gluSphere(quadratic,0.2f,32,32); 就是先根據z方向的移動速度來轉動球 然後再根據x方向的移動速度來轉動球 在最一開始的時候如果只根據x方向移動,球的轉動是正常的 可是當z方向的移動出現之後,球的旋轉方向似乎被打亂了 反之,一開始從z方向移動正常,x方向移動出現後,轉動也被打亂 請問各位大大我該如何讓球滾動正常呢? 我用的介面是OpenGL 謝謝@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.223.230.95

10/04 14:19, , 1F
因為你對x軸轉動以後 整個球的座標系轉動 z軸也就轉動了
10/04 14:19, 1F

10/04 14:24, , 2F
應該要對世界座標系的x,z軸轉動才行 要乘在matrix的前面
10/04 14:24, 2F

10/04 14:25, , 3F
不過一時間還沒想到有沒有辦法直接用glrotate做
10/04 14:25, 3F

10/04 15:07, , 4F
同學跟我說 可以把glRotate乘到perspective matrix後面
10/04 15:07, 4F

10/04 15:07, , 5F
這樣就等於在modelview matrix的前面了
10/04 15:07, 5F

10/04 18:38, , 6F
Quaternion
10/04 18:38, 6F
文章代碼(AID): #18vhsPlX (GameDesign)
文章代碼(AID): #18vhsPlX (GameDesign)