OpenGL ESの新機能です。回転して翻訳した後にキューブのワールド座標を計算するのに役立ちますか?例:
最初に回転キューブ:
gl.glRotatef(90、1,0,0);
彼の位置を変更するよりも
gl.glTranslatef(10、0、0);
"新しい"世界座標をどのように計算できますか?私はglGetFloatv(GL_MODELVIEW_MATRIX、行列)について読んでいますが、理解できません。たぶん誰かがサンプルコードを提供することができます。
編集:
解決策が見つかりました。 Androidコード
float[] matrix = new float[] {
お返事ありがとうございます。glRotatefとglTranslatefの後のOpenGLの位置
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1,
};
Matrix.rotateM(matrix, 0, rx, 1, 0, 0);
Matrix.rotateM(matrix, 0, ry, 0, 1, 0);
Matrix.rotateM(matrix, 0, rz, 0, 0, 1);
Matrix.translateM(matrix, 0, x, y, z);
x = matrix[12];
y = matrix[13];
z = matrix[14];
1
A
答えて
0
質問の残りの部分について、あなたが望む部分についての回答がありますが(Javaエラーが発生した場合は私を許してください、私は実際にAndroidの人ではありません) :
float[] matrix = new float[16];
gl.glGetFloatv(GL_MODELVIEW_MATRIX, matrix);
// check out matrix[12], matrix[13] and matrix[14] now for the world location
// that (0, 0, 0) [, 1)] would be mapped to
getFloatvは、指定されたfloatバッファにmodelview行列の現在の値を読み戻すだけです。 OpenGLの4x4行列では、インデックス0が左上、インデックス3が最初の列の最小番号、12が最初の行の最も右の番号になるように指定されています。 OpenGL FAQは完全にこの用語に満足していませんが、これは通常、列主レイアウトと呼ばれます。
関連する問題
- 1. OpenGLカメラの位置とスカイボックス
- 2. OpenGL - ライトの値と位置
- 3. openGL 2Dマウスのクリック位置
- 4. glMultMatrix/glLoadMatrixよりもglRotatef、またはglTranslatefより効率的ですか?
- 5. OpenGL - GlVertex相対位置/絶対位置
- 6. レンダリング後のOpenGLのポイント位置(3d - > 2d)
- 7. Windows下でのOpenGLのテキスト位置
- 8. OpenGL関数(glRotatefなど)で 'f'とは何ですか?
- 9. 頂点位置からのOpenGLノーマルベクトル
- 10. OpenGL ES SensorManagerパーティクル位置の更新
- 11. OpenGL - マウスの位置座標を取得
- 12. OpenGLの透視投影とカメラの位置
- 13. 処理とOpenGL - カメラの位置を変更しますか?
- 14. ジャンプは最後の位置
- 15. SpriteNodeの位置とタッチの位置
- 16. OpenGLはglTranslatefからgluLookAtに切り替えた後に希望の出力を表示しません
- 17. OpenGLでの3Dオブジェクトのタッチ位置の検出
- 18. glRotatef問題
- 19. ノードの最後の位置を取得
- 20. 移動後のボタンのリセット位置
- 21. ドラッグした後のGoogleマップマーカーの位置
- 22. recyclerviewの最後の位置にスクロール
- 23. 設定後のチャネージタブのテキスト位置
- 24. 回転後のUIViewの位置
- 25. Highcharts.stockChartレンジセレクタ(ズーム)チャートコンテナの後のボタン位置
- 26. 各フレームの位置を更新すると、OpenGLのライトが点滅します
- 27. 異なる位置に2つのモデルを描くopengl 2 android
- 28. マウスの位置にあるopenglで四角形を描く
- 29. openglは円上の位置を回転します
- 30. 3Dキューブの位置を追跡するOpenGL?
キューブの新しい位置を探しているなら、間違ったことをする可能性が最も高いです。その行列は、描画を簡単にするためのものです(手ですべてを再計算することなく、さまざまな位置にあるものを描画できます)。私はゲームのロジックを計算するためにそれを使用しません。あなたが何をしようとしているかについての詳細は何ですか? – Mario
この情報をお読みください-http://u.cs.biu.ac.il/~kapaho/CG/06_3d_trans.pdf#page=21 – URL87