我正在创建一个基于固定功能管道的游戏(我知道,滚动你的眼睛),我想知道是否可以完全禁用颜色并只绘制线框。我在我的四边形上使用纹理,但是当我使用这个代码时:
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);
}
它只绘制线条,然后恢复为填充模式。但是,在线框模式下,您仍然可以看到线条上的颜色渗透,我不希望这样。有没有办法删除它,所以我只有白线?
答案 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)。