0

2D画像を背景画像としてクワッドにマッピングしようとしています。画像は画面の中央に描画されるため、右上の四分の一だけが覆われ、残りは画面外に表示されます。とにかく、TexCoordを翻訳または変更して、左下から描画できるようにすることはできますか?以下は私が使用しているコードです。

        background.bind();          
        GL11.glBegin(GL11.GL_QUADS);
             GL11.glTexCoord2f(1,1);
             GL11.glVertex2i(0,0);
             GL11.glTexCoord2f(1,0);
             GL11.glVertex2i(0,600);
             GL11.glTexCoord2f(0,0);
             GL11.glVertex2i(800,600);
             GL11.glTexCoord2f(0,1);
             GL11.glVertex2i(800,0);
        GL11.glEnd();
4

1 に答える 1

1

これはテクスチャとは何の関係もありません。テクスチャを削除すると、現在とまったく同じようにレンダリングされます。

OpenGLは、ウィンドウ座標の頂点を自然に取得しません。これを可能にするには、通常、何らかの形式の正射影行列を設定する必要があります。通常は、を使用しglOrthoます。これは次のようになります。

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, width, 0, height, -1.0, 1.0);

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

//Render stuff in window coordinates here.

glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();

マトリックスのプッシュとポップにより、前のマトリックスが確実に保持されます。

于 2011-07-22T13:22:17.670 に答える