【问题标题】:White Pixels With GL_POLYGON_SMOOTH带有 GL_POLYGON_SMOOTH 的白色像素
【发布时间】:2013-08-28 07:39:24
【问题描述】:

我遇到了一个问题,即白色像素在 OpenGL 中的对象上随机出现(有点)。 This 是正在发生的事情的一个例子。在为其他可能遇到此问题的人搜索 Stack Overflow 时,我发现 GL_POLYGON_SMOOTH 不值得启用。我禁用了它,斑点消失了(这对我来说很幸运)。这非常幸运,但我仍然不明白为什么启用GL_POLYGON_SMOOTH 会创建这些神器。有人可以解释他们为什么出现吗?另请注意,我有 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 正在进行。

【问题讨论】:

    标签: java opengl polygon lwjgl


    【解决方案1】:

    GL_POLYGON_SMOOTH 是选择性抗锯齿,而不是全场景抗锯齿(例如 MSAA 或 SSAA)。

    这里真正的问题基本上是通过将光栅化多边形的轮廓边缘与帧缓冲区中已有的像素混合来实现的。它是顺序相关的,所以除非你的多边形是完全深度排序的(在这种情况下你不需要深度缓冲区)它不会产生完美的结果。即使您确实将所有内容都完美排序,但在许多场景中,这需要的透支量将是荒谬的。

    如今,多样本抗锯齿是首选,它避免了顺序依赖问题,您可以更好地控制质量与性能,并且您实际上可以使用多样本纹理自己实现它。 GL_POLYGON_SMOOTH 有一个质量提示(快/好),就是这样。

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 2018-09-28
      • 2019-12-13
      • 2015-05-05
      • 2015-02-13
      • 2014-05-02
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      相关资源
      最近更新 更多