在openGL中带孔的半透明多边形中看到的瑕疵(接缝)

kd3sttzy  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(166)

我有一个带洞的多边形,当在OpenGL中用半透明颜色渲染时,它会在镶嵌三角形的接缝处显示出一些伪像(通过GLUtesselator)。这有点奇怪,因为如果用不透明颜色绘制同一个多边形,它就不会有这样的伪像。
伪影显示为从多边形内圆延伸到外边界的虚线:

多边形内部出现更多伪影:

它看起来像是两个相邻三角形边缘之间颜色的阿尔法混合出血。但我不知道如何缓解这个问题。
有没有人以前见过这个问题?或者有没有人能指出问题可能是什么以及可能的解决方案?

knsnq2tg

knsnq2tg1#

OpenGL保证绘制共享一条边的两个三角形时,每个被覆盖的碎片只生成一次,因此您可以渲染无伪像的半透明多边形。
然而,这个保证只有在两个三角形的边的两个顶点都相同的情况下才成立,如果你用GL_SMOOTH_POLYGON反锯齿多边形,这个保证也不成立。
在没有看到相关代码的情况下,很难判断这里是什么情况,但我肯定会检查共享边的顶点坐标,看看它们是否相同。

相关问题