我正在基于固定功能管道(我知道,请睁大眼睛)创建一个游戏,我想知道是否有可能完全禁用颜色并仅绘制线框。我在四边形上使用纹理,但是当我使用以下代码时:
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在任何地方更改颜色,则将要创建一个布尔值,表示是否处于线框模式。如果然后才开始每个渲染调用,请调用glColor3f(1,1,1)。
关于java - 仅渲染2D LWJGL中的线框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20308304/