【问题标题】:OpenGL Random White DotsOpenGL 随机白点
【发布时间】:2013-03-05 14:46:51
【问题描述】:

我正在尝试在白色背景中渲染几何图形。问题是几何图形内部出现随机白点。当我调整窗口大小时,白点会切换位置......在几何图形内随机出现和消失(当我调整窗口大小时)。

我进行了广泛的测试,发现这些点只出现在两个三角形之间的边缘。似乎两个三角形都无法渲染该像素(好像该像素不包含在任何三角形中),因此渲染了白色背景。我应该注意,这些边框上只有几个像素是白色的(不是全部)。它不是某种纹理过滤问题,因为即使我用纯色渲染多边形(我直接在着色器中设置)也会出现问题。

真的,这似乎是某种命中测试问题,OpenGL 实现无法检测到两个相邻三角形边界上的某些像素。

我在配备 NVIDIA GeForce GTX 675MX 的 27 英寸 iMac 上运行此示例。我将在配备英特尔集成显卡的 MacBook 上测试同样的应用程序。

有人能解释一下这个话题吗?

【问题讨论】:

  • 如果相邻三角形不共享顶点,则可能由于精度/舍入误差而发生。否则,只有在 OpenGL 实现被破坏时才会发生(不太可能)。你们是共享顶点还是分开的?
  • @Damon 我至少可以想到另一种可能发生这种情况的方式,即使使用正确共享的顶点和一个好的驱动程序,也就是滥用 GL_POLYGON_SMOOTH

标签: opengl rendering visual-glitch


【解决方案1】:

感谢@Damon。我解决了不是顶点不完全相同的问题。真正的问题是(通过设计)一些顶点需要停留在两个三角形之间的交点中。这导致 OpenGL 出现问题。解决方案是稍微向下移动顶点(在三角形内部)并相应地调整纹理坐标。

非常感谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2013-05-28
    相关资源
    最近更新 更多