Java JOGL多边形抗锯齿
我正试图在我的OpenGL应用程序中使用抗锯齿,但不管我怎么做,似乎都不管用 我最近的尝试是:Java JOGL多边形抗锯齿,java,opengl,jogl,Java,Opengl,Jogl,我正试图在我的OpenGL应用程序中使用抗锯齿,但不管我怎么做,似乎都不管用 我最近的尝试是: gl.glEnable(GL.GL_BLEND); gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); gl.glEnable(GL2.GL_POLYGON_SMOOTH); gl.glHint(GL2.GL_POLYGON_SMOOTH_HINT, GL.GL_NICEST); 其中(部分)我的多边形代码是: gl.glBegin
gl.glEnable(GL.GL_BLEND);
gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL2.GL_POLYGON_SMOOTH);
gl.glHint(GL2.GL_POLYGON_SMOOTH_HINT, GL.GL_NICEST);
其中(部分)我的多边形代码是:
gl.glBegin(GL_QUADS);
gl.glColor3f(0.1f, 0.1f, 0.1f); // asphalt grey
gl.glVertex3f(3.0f, 0.06f, 0.0f);
gl.glVertex3f(3.0f, -0.06f, 0.0f);
gl.glVertex3f(-3.0f, -0.06f, 0.0f);
gl.glVertex3f(-3.0f, 0.06f, 0.0f);
gl.glEnd();
但这绝对没有效果!我仍然能看到这个可怕的、参差不齐的画面:
我也试过了
gl.glBlendFunc(GL.GL_SRC_ALPHA_SATURATION, GL.GL_ONE);
根据,但这只会产生一个没有任何内容的黑屏
我已经试过了
gl.glDisable(GL.GL_DEPTH_TEST);
在启用混合之前,它再次什么也不做
我做错了什么?首先,您需要一种带有目标alpha的像素格式来使用alpha饱和混合模式。这意味着您的帧缓冲区必须存储alpha通道。由于目标alpha通道没有很多常见用途,因此通常只使用RGB通道设置帧缓冲区。你能把你的像素格式添加到问题中吗?你读过关于多样本扩展的文章吗@ravuya:
GL_POLYGON_SMOOTH
适用于任何填充图元。它不适用于直线或点。这两种基本体有单独的平滑状态。很抱歉,编辑了我的原始帖子以删除该信息。谢谢你的更正@Coleman我还没有明确设置像素格式,我也不知道如何设置。您能否提供有关如何设置像素格式的说明?