私は OpenGL ES を使用して画像を描画しています。現在、ビューの設定は次のとおりです。
gl.glClearColor(0.6f, 0.6f, 1f, 1f);
gl.glClearDepthf(1.0f);
gl.glViewport(0, 0, varScreenWidth, varScreenHeight);
gl.glShadeModel(GL10.GL_SMOOTH);
gl.glDisable(GL10.GL_DEPTH_TEST);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
gl.glLoadIdentity();
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glOrthof(0f, width, 0f, height, -10f, 10f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
ビュー全体を Z 軸で回転させたいのですが、glRotate() を使用できません。オブジェクトが右から左に移動しているため、移動するときは Y 位置にオフセットを追加する必要があります。オブジェクトが Y 位置に自動的に移動するように、カメラ ロールのように Z 軸でビュー全体を回転させる方法が必要です。(ScreenWidth - ObjPositionX) と sin(Zroll) を乗算して y オフセットを追加しようとしましたが、オブジェクトがその位置に完全にとどまらない視覚的な問題がいくつかあります。助けてくれてありがとう...
- 編集
わかりました、誰かが私にもっと明確になってほしいと思っていました。したがって、関数 glRotate は、オブジェクトをその起源上に転がしています。しかし、原点は単一のオブジェクトではなくビューの中心であるため、ビュー全体をZ軸で回転させる方法が必要です。したがって、オブジェクトが中央の左側にある場合、より高く見えます。オブジェクトが右側にある場合、下に表示されます。