多边形在OpenGL中进行平滑处理

多边形在OpenGL中进行平滑处理,opengl,smooth,Opengl,Smooth,我试图在我的体素引擎中获得一些抗锯齿,但是当我启用GL\u POLYGON\u SMOOTH状态时,我在多边形的边界上得到了这些奇怪的波 没有: 与: 你知道这可能来自哪里吗?这很正常。 要使多边形平滑正常工作,需要3件事: 使用GL\u POLYGON\u SMOOTH时,从后向前绘制体素 存储目标alpha的帧缓冲区(例如RGBA而非RGB) 混合函数需要是GL\u SRC\u ALPHA\u饱和,GL\u ONE 如果你把这三个因素都考虑进去,黑白亚像素瑕疵就会消失 由于按特定顺序绘制

我试图在我的体素引擎中获得一些抗锯齿,但是当我启用
GL\u POLYGON\u SMOOTH
状态时,我在多边形的边界上得到了这些奇怪的波

没有:

与:

你知道这可能来自哪里吗?

这很正常。 要使多边形平滑正常工作,需要3件事:

  • 使用
    GL\u POLYGON\u SMOOTH
    时,从后向前绘制体素
  • 存储目标alpha的帧缓冲区(例如RGBA而非RGB)
  • 混合函数需要是
    GL\u SRC\u ALPHA\u饱和,GL\u ONE
  • 如果你把这三个因素都考虑进去,黑白亚像素瑕疵就会消失

    由于按特定顺序绘制体素相当繁琐,而且不推荐使用
    GL\u POLYGON\u SMOOTH
    ,因此大多数人只是使用多采样抗锯齿。我建议你也走这条路