Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-LWJGL屏幕故障_Java_Linux_Opengl_Lwjgl_Ubuntu 13.10 - Fatal编程技术网

Java-LWJGL屏幕故障

Java-LWJGL屏幕故障,java,linux,opengl,lwjgl,ubuntu-13.10,Java,Linux,Opengl,Lwjgl,Ubuntu 13.10,我正在摆弄LWJGL库,并尝试显示一个屏幕,它在任何意义上都显示得很好,除了如下所示的屏幕故障。每次我显示屏幕时都会发生此故障。我只将lwjgl.jar作为参考库,并将其链接到“linux”本机文件夹。我正在运行Ubuntu13.10操作系统,并为opengl安装了“freeglut” 这是我用来显示屏幕的代码 public Main() { try { Display.setDisplayMode(new DisplayMode(640, 480));

我正在摆弄LWJGL库,并尝试显示一个屏幕,它在任何意义上都显示得很好,除了如下所示的屏幕故障。每次我显示屏幕时都会发生此故障。我只将lwjgl.jar作为参考库,并将其链接到“linux”本机文件夹。我正在运行Ubuntu13.10操作系统,并为opengl安装了“freeglut”

这是我用来显示屏幕的代码

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();
}

有人能告诉我是什么导致了这个问题吗?

您必须在每次更新时清除颜色缓冲区:

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

编辑:澄清:在显示更新之前,必须每帧清除颜色缓冲区(如果使用3D,则为深度缓冲区)。如果未清除,它将填充随机数据(因此是棋盘格和foobar)。

在显示之前先清除屏幕。update()

使用glClear(GLU颜色缓冲位);清除颜色缓冲区。如果使用深度缓冲区,您可能还希望将其设置为GL_color_buffer_BIT | GL_depth_buffer_BIT。 您可以使用GLClearColor()设置屏幕将清除的颜色,3个输入为红色、绿色和蓝色,最后一个输入为alpha颜色(不需要,如果需要,只需设置为1)


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

屏幕应该是什么样子?它应该是一个完全黑色的屏幕,从我看到的教程来看,它们一直都是这样,除了我自己,没有人遇到过这个问题。