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