0

私の問題は、opengl でクワッドをレンダリングしていることです。このコード:

public void render() {
    System.out.println("Test");
    GL11.glPushMatrix();
    GL11.glTranslated(300,300,0);


    GL11.glColor3f(1f, 1f,1f);
    GL11.glRotatef(0, 0, 0, 1);
    GL11.glScalef(64, 64, 0);
    GL11.glBegin(GL11.GL_QUADS);
        GL11.glVertex2i(0, 0);
        GL11.glVertex2i(1, 0);
        GL11.glVertex2i(1,1);
        GL11.glVertex2i(0, 1);
    GL11.glEnd();

    GL11.glPopMatrix();
}

このように表示されますが、サイズが 64x64 であるため、きれいな正方形として表示されるはずです。

これについて奇妙なことは、その背後にある画像を正しく描画したことです。この画像/クワッドの描画を停止しましたが、それでも同じ問題が発生します。上記のコードに問題はありません。

このコード スニペットが役立つ場合、これは私の OpenGl 初期化コードです。

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 720, 0, 1280, 1, -1);
    glMatrixMode(GL_MODELVIEW);

ちょうど今、別の lwjgl 構成でテストしましたが、効果はありませんでした。

4

1 に答える 1

1

これはアスペクト比の問題です。glOrtho() メソッドでこれを処理する必要があります。これがあなたが必要とするものです。これこれもチェックしてください。もっと多くのウェブ検索は、ここで質問しなくてもトリックを実行します ;)

また、代わりに gluOrtho を試してください。この回答を参照してください。

于 2013-09-07T11:50:19.027 に答える