【发布时间】:2013-03-05 14:46:51
【问题描述】:
我正在尝试在白色背景中渲染几何图形。问题是几何图形内部出现随机白点。当我调整窗口大小时,白点会切换位置......在几何图形内随机出现和消失(当我调整窗口大小时)。
我进行了广泛的测试,发现这些点只出现在两个三角形之间的边缘。似乎两个三角形都无法渲染该像素(好像该像素不包含在任何三角形中),因此渲染了白色背景。我应该注意,这些边框上只有几个像素是白色的(不是全部)。它不是某种纹理过滤问题,因为即使我用纯色渲染多边形(我直接在着色器中设置)也会出现问题。
真的,这似乎是某种命中测试问题,OpenGL 实现无法检测到两个相邻三角形边界上的某些像素。
我在配备 NVIDIA GeForce GTX 675MX 的 27 英寸 iMac 上运行此示例。我将在配备英特尔集成显卡的 MacBook 上测试同样的应用程序。
有人能解释一下这个话题吗?
【问题讨论】:
-
如果相邻三角形不共享顶点,则可能由于精度/舍入误差而发生。否则,只有在 OpenGL 实现被破坏时才会发生(不太可能)。你们是共享顶点还是分开的?
-
@Damon 我至少可以想到另一种可能发生这种情况的方式,即使使用正确共享的顶点和一个好的驱动程序,也就是滥用 GL_POLYGON_SMOOTH
标签: opengl rendering visual-glitch