我正在搞乱LWJGL库,并尝试显示一个屏幕,除了屏幕故障之外,它在各方面都显示得很好,如下图所示。每次显示屏幕时都会发生这种故障。我只将lwjgl.jar作为引用库包含在内,并将其链接到' linux'本机文件夹。我正在运行Ubuntu 13.10操作系统,并安装了' freeglut'对于opengl。
以下是我用来显示屏幕的代码。
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();
}
有人能告诉我导致这个问题的原因吗?
答案 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>
注意:我是英国人。用颜色替换颜色。