0

好的,所以我通过 TheCodingUniverse 的一些教程开始学习 LWJGL,但我在绘制线条和四边形方面遇到了困难。

编码

package LWJGL_Learn;

import static org.lwjgl.opengl.GL11.*;
import org.lwjgl.opengl.*;
import org.lwjgl.*;

public class SimpleOGLRenderer {

    public SimpleOGLRenderer() {
        try {
            Display.setDisplayMode(new DisplayMode(640, 480));
            Display.setTitle("SimpleOGLRenderer");
            //Display.setInitialBackground(256, 256, 256);
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
        }

        //OpenGL Initialization
        glMatrixMode(GL_PROJECTION); 
        glLoadIdentity();
        glOrtho(0, 640, 480, 0, 1, -1);
        glMatrixMode(GL_MODELVIEW);

        while (!Display.isCloseRequested()) {

            //Render Code'
            glBegin(GL_QUADS);
                glVertex2i(50, 50);
                glVertex2i(80, 70);
                glVertex2i(80, 130);
                glVertex2i(50, 300);
            glEnd();

            glBegin(GL_LINES);
                glVertex2i(100, 100);
                glVertex2i(200, 200);
            glEnd();

            GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
            Display.update();
            Display.sync(60);
        }
        Display.destroy();
        System.exit(0);
    }
    public static void main(String[] args) {
        new SimpleOGLRenderer();
    }
}

请参阅此视频中大约 6:50 分钟,以了解代码应该是什么以及它应该做什么。

无论如何,问题是没有线或四边形出现。屏幕保持黑色。现在,我想可能是因为在黑色显示器上绘制了黑线,所以我修改了背景颜色(注释掉的线,像.setInitialDisplay...),但没有结果。颜色改变了,但屏幕保持白色,没有出现任何线条。你们中的任何人都知道我做错了什么吗?

4

1 回答 1

1

1) 默认颜色为白色,但您在执行 Display.update() 删除之前正在清除颜色缓冲区:

GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);

2)您没有使用视频中的坐标,就在 6:50 之前。

于 2012-12-22T19:33:24.370 回答