我在遊戲中有以下矩陣我正在進行逆向工程以瞭解它是如何工作的。從ModelViewMatrix獲取角度
我設法捕獲此矩陣當一個模型被呈現:
0.999971, 0.003148, -0.006994, 0.000000
0.000000, 0.911863, 0.410494, 0.000000
0.006903, -0.410485, 0.911844, 0.000000
-25014.388672, 11944.956055, -19475.357422, 1.000000
我開始使用計算角度以下:
Point CalculateRotatation(float ModelView[16])
{
Point Result;
Result.X = atan2(ModelView[9], ModelView[10]) * (180/PI);
Result.Y = atan2(-ModelView[8], ModelView[9]) * (180/PI);
Result.Z = atan2(ModelView[4], ModelView[0]) * (180/PI);
return Result;
}
我以下:http://db-in.com/blog/2011/04/cameras-on-opengl-es-2-x/
I」米不知道我是否正確地做。遊戲不使用OpenGL-ES,但我不確定它是否重要。
你們能告訴我,如果我在正確的道路上,或者如果我的計算功能是正確的? Y值似乎是錯誤的。我知道有很多這樣的線索,我通過他們看,但他們似乎並沒有做我所擁有的。他們正在使用點積和交叉產品。我只需要確認或一點幫助。
編輯:我知道這麼多:
我知道了X的計算和Y輪換是正確的。如果我從左向右改變角色的視角,則Z增加/減少。如果我改變角色的視角高度,X會增加/減少。然而,我不知道這是正確的或如何得到它..我有這個圖表:
你知道模型和視圖矩陣嗎? – yngccc
確保仔細檢查column-major/row-major,這總是出現差異的地方。 –
我不知道兩個矩陣分開。我用我所知道的一切更新了OP。 – Brandon