【发布时间】:2011-06-05 16:56:51
【问题描述】:
我正在 WebGL(180 个网格)中渲染一个复杂的场景,对应于汽车模型(Nissan GTX)。但是,当我四处移动相机时,似乎缺少三角形,
这些“缺失的三角形”似乎在表面上随机跳跃。这可能是深度缓冲区问题还是正常计算问题?我不知道。
不过,如果我在模型表面附近放大,所有三角形都在那里。
有人遇到过这个问题吗?有小费吗?!
【问题讨论】:
我正在 WebGL(180 个网格)中渲染一个复杂的场景,对应于汽车模型(Nissan GTX)。但是,当我四处移动相机时,似乎缺少三角形,
这些“缺失的三角形”似乎在表面上随机跳跃。这可能是深度缓冲区问题还是正常计算问题?我不知道。
不过,如果我在模型表面附近放大,所有三角形都在那里。
有人遇到过这个问题吗?有小费吗?!
【问题讨论】:
我想,你有一个线框网格直接位于(或非常靠近)实体网格的顶部,这只是一个深度缓冲问题。它在放大时起作用,因为视锥体附近区域的深度缓冲区精度更高。
当直接在实体网格上渲染线框叠加时,尝试通过使用多边形偏移(或修改gl_FragDepth 的类似片段着色器)来调整屏幕空间深度。或者只是将它们移到更远的对象空间中。
【讨论】:
当您怀疑深度缓冲区问题时,您可能是对的 - 到相机的距离会影响事物这一事实表明这可能是缓冲区精度问题。查看this question 的答案以获得可能的解决方案。
【讨论】: