1

OpenGL を介して疑似 2D キャンバスにクワッドを表示しています。そのために、次の方法で正投影を使用します。

gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(-ratio, ratio, -1, 1, 0, 10000);

表示されたクワッドの座標は次のとおりです。

float[] quadCoords = {-10.0f, -10.0f, 5.0f, 
                       10.0f, -10.0f, 5.0f, 
                       10.0f,  10.0f, 5.0f, 
                      -10.0f,  10.0f, 5.0f};

このクワッドは 2 つの三角形としてレンダリングされます (コードは割愛します)。うまく機能しているテクスチャも適用しています。「カメラ」は、次のようにクワッドをレンダリングする前に定義されます。

gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
GLU.gluLookAt(gl, -10.0f, -10.0f, -5, -10.0f, -10.0f, 0f, 0f, 1.0f, 0.0f);

ご覧のとおり、ビューポートの中心は [-10, -10, 0] で、これはクワッドの左下隅に配置する必要があります。ただし、シーンをレンダリングすると、次のようになります。

OpenGL スクリーンショット

これは右下隅のように見えますが、そうではありません。確認したところ、X軸が反転していることがわかりました。私はgluLookAtで何か間違っていますか?それとも私は何かを逃しましたか?

4

1 に答える 1

3

それは少しばかげていますが、私はこの質問を書いた数分後(それが起こってから数時間後)に答えを見つけました:

「カメラ」はクワッドの裏側を見ています。クワッドのすべてのz座標に「0」を割り当て、gluLookAtのアイポイントのz座標に「+1」を割り当てると修正されました。

于 2012-03-21T16:37:19.467 に答える