java - 仅渲染 2D LWJGL 中的线框

标签 java opengl lwjgl

我正在创建一个基于固定功能管道的游戏(我知道,翻白眼),我想知道是否可以完全禁用颜色并只绘制线框。我在我的四边形上使用纹理,但是当我使用此代码时:

            if (Keyboard.isKeyDown(Keyboard.KEY_F1)) {
                GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
            }

            if (Keyboard.isKeyDown(Keyboard.KEY_F2)) {
                GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);
            }

它只是绘制线条,然后恢复到填充模式。但是,在线框模式下,您仍然可以看到线条上的颜色渗漏,而我不希望出现这种情况。有什么方法可以删除它,这样我就只有白线了?

最佳答案

if (Keyboard.isKeyDown(Keyboard.KEY_F1)) {
       GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
       glDisable(GL_TEXTURE_2D);
}

if (Keyboard.isKeyDown(Keyboard.KEY_F2)) {
       GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);
       glEnable(GL_TEXTURE_2D)
}

此外,如果您要使用 glColor3f/glColor4f 更改任何位置的颜色,您将需要创建一个 boolean 值来确定是否处于线框模式。如果您在每次渲染调用开始时,请调用 glColor3f(1, 1, 1)。

关于java - 仅渲染 2D LWJGL 中的线框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20308304/

相关文章:

java - 使用 3 个线程将元素添加到 5 个 ArrayList : the sum of the arraylist's size is always different

c++ - OpenGL光照和发光

c++ - "Warning: corrupt .drectve at end of def file"是什么意思?

java - 光滑 : can't load image in update loop

java - JTabbedPane 无法正常工作

java - 如何检查 if 语句中元素的可见性?

c++ - 用于片段着色器的 OpenGL GLSL 绑定(bind)采样器

java - LWJGL 和 Ogg/Mp3

java - 游戏崩溃并回调失败,因为闭包实例已被垃圾收集

java - 带时间的浮点精度 - 乘法与除法