我已經爲android編寫了第一人稱相機類。第一人稱3D相機旋轉
類非常簡單,相機對象具有其三個軸 X,Y和Z
和有功能來創建模型視圖矩陣(即calculateModelViewMatrix()), 旋轉沿其X相機和Y軸 並沿Z軸轉換攝像機。
我認爲我的ModelViewMatrix算法是正確的,我也可以沿着Z軸平移相機。
沿x軸旋轉似乎工作,但沿着Y軸它給出了奇怪的結果。 另外旋轉的另一個問題似乎是,而不是相機被旋轉,我的3D模型開始旋轉,而不是沿着它的軸。
我已經寫了另一個實現基於看點,並使用openGL ES的GLU.gluLookAt()函數來獲得ModelView矩陣,但也似乎遭受完全相同的問題。
編輯
首先感謝您的回覆。
我實際上已經做了Camera類的第二次實現,這次使用android.opengl.Matrix類中提供的旋轉函數。 我已經提供了下面的代碼,這非常簡單。
令我驚訝的是,結果是「完全一樣」。 這意味着我的旋轉函數和Android的旋轉函數產生了相同的結果。
我做了一個簡單的測試並查看了我的數據。 我只是圍繞Y軸旋轉LookAt點1-dgree並查看座標。看起來,我的LookAt點落後於確切的旋轉角度,例如在20度時,它只有10到12度。 並在45度後開始倒車