【问题标题】:Java - LWJGL Screen GlitchJava - LWJGL 屏幕故障
【发布时间】:2014-04-22 03:03:40
【问题描述】:

我在搞乱 LWJGL 库并尝试显示一个屏幕,除了如下图所示的屏幕故障外,它在各个方面都显示良好。每次显示屏幕时都会发生此故障。我仅将 lwjgl.jar 作为引用库包含在内,并将其链接到“linux”本地文件夹。我正在运行 Ubuntu 13.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();
}

谁能告诉我是什么导致了这个问题?

【问题讨论】:

  • 屏幕应该是什么样子的?
  • 它应该是一个完全黑屏,从我看到的教程中他们总是看起来像这样,除了我自己之外没有人遇到过这个问题。

标签: java linux opengl lwjgl ubuntu-13.10


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    在Display.update()之前先清屏;

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多