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 回答