Java - LWJGL Screen Glitch

时间:2014-03-17 01:14:05

标签: java linux opengl lwjgl ubuntu-13.10

我正在搞乱LWJGL库,并尝试显示一个屏幕,除了屏幕故障之外,它在各方面都显示得很好,如下图所示。每次显示屏幕时都会发生这种故障。我只将lwjgl.jar作为引用库包含在内,并将其链接到' linux'本机文件夹。我正在运行Ubuntu 13.10操作系统,并安装了' freeglut'对于opengl。

enter image description here

以下是我用来显示屏幕的代码。

public Main()
{
    try
    {
        Display.setDisplayMode(new DisplayMode(640, 480));
        Display.create();
    }
    catch(LWJGLException ex)
    {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }

    while(!Display.isCloseRequested())
    {
        Display.update();
        Display.sync(60);
    }

    Display.destroy();
}

有人能告诉我导致这个问题的原因吗?

2 个答案:

答案 0 :(得分:2)

每次更新都必须清除颜色缓冲区:

glClearColor(0f, 0f, 0f, 0f);
glClear(GL_COLOR_BUFFER_BIT);

编辑:澄清:在显示更新之前,每帧都必须清除颜色缓冲区(以及深度缓冲区,如果您正在使用3D)。如果它没有被清除,它将被填充随机数据(因此检查板和foobar。)

答案 1 :(得分:1)

在Display.update();

之前先清除屏幕

使用glClear(GL_COLOUR_BUFFER_BIT);清除颜色缓冲区。如果使用深度缓冲区,则可能还需要将其设置为GL_COLOUR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT。 您可以使用glClearColour()设置屏幕将清除的颜色,3个输入为红色,绿色和蓝色,最后一个为alpha颜色(不需要,如果必须,则设置为1)。 / p>

注意:我是英国人。用颜色替换颜色。