在Windows上使用LWJGL时出现奇怪的垂直条

时间:2013-05-10 23:49:36

标签: java windows opengl graphics lwjgl

我正在用java编写一个游戏,它使用LWJGL的原生OpenGL绑定来渲染OpenGL中的游戏图形。当我在Linux上运行游戏(在具有不同图形卡的2台不同计算机上进行测试)时,一切正常。但是,当我在Windows上运行游戏时,显示屏上会出现奇怪的垂直1像素宽条。

以下是问题的图片:

我在三台使用不同显卡的Windows计算机上试过这个,所有这些显卡都有最新的驱动程序。

有趣的是,每次运行程序时,条形都出现在完全相同的位置,即使每次生成的地形都不同。

我很困惑为什么会出现这些竖条。我用来渲染地形的代码是

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

// draw the terrain
glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);
glColor3f(0F, 0F, 0F);
glBegin(GL_LINES);
for (int x = 0; x < Constants.NUM_WIDE; x++) {
    glVertex2i(x, 0);
    glVertex2i(x, originalHeightMap[x]);
}
glEnd();

//draw a smooth line strip on top of the terrain to anti-alias it
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
glBegin(GL_LINE_STRIP);
for (int x = 0; x < Constants.NUM_WIDE; x++) {
    glVertex2i(x, originalHeightMap[x]);
}
glEnd();

此代码应填充整个宽度。

另一个有趣的事实是,如果你仔细观察,你应该能够在白色条纹所在的地方看到地形顶部的平滑线条。这个白条问题以某种方式消除了作为地形一部分的黑线,但没有删除顶部反锯齿的线条。

我在渲染地形时尝试打开和关闭混合,两种情况都出现了同样的问题。

有谁知道如何解决这个问题,或者为什么它只出现在Windows上?

0 个答案:

没有答案