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

            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/

10-10 02:32