仅渲染2D LWJGL中的线框

时间:2013-12-01 03:09:25

标签: 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);
            }

它只绘制线条,然后恢复为填充模式。但是,在线框模式下,您仍然可以看到线条上的颜色渗透,我不希望这样。有没有办法删除它,所以我只有白线?

1 个答案:

答案 0 :(得分:3)

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在任何地方更改颜色,您将需要创建一个布尔值,表示您是否处于线框模式。如果您在每个渲染调用的开头,请调用glColor3f(1,1,1)。