模型出现闪烁怎么办?

模型出现闪烁怎么办?_第1张图片

 

当相机移动物体会出现边缘抖动和Z-Fighting问题,存在的原因有

1:抗锯齿:FAXX ,将抗锯齿设为8或以上,可有效解决边缘抖动的问题。

2:深度冲突:发生在2个几乎共面的片面,他们投影在后裁减平面时都会被赋予一个深度,导致后面移动了相机,深度发生变化,产生Z-Fighting。

 

如何防止深度冲突

第一个也是最重要的技巧是永远不要把多个物体摆得太靠近,以至于它们的一些三角形会重叠。通过在两个物体之间设置一个
用户无法注意到的偏移值,你可以完全避免这两个物体之间的深度冲突。在箱子和地板的例子中,我们可以将箱子沿着正y轴
稍微移动一点。箱子位置的这点微小改变将不太可能被注意到,但它能够完全减少深度冲突的发生。然而,这需要对每个物体
都手动调整,并且需要进行彻底的测试来保证场景中没有物体会产生深度冲突。


第二个技巧是尽可能将近平面设置远一些。在前面我们提到了精度在靠近近平面时是非常高的,所以如果我们将近平面远离观
察者,我们将会对整个平截头体有着更大的精度。然而,将近平面设置太远将会导致近处的物体被裁剪掉,所以这通常需要实
验和微调来决定最适合你的场景的近平面距离。


另外一个很好的技巧是牺牲一些性能,使用更高精度的深度缓冲。大部分深度缓冲的精度都是24位的,但现在大部分的显卡都支持32位的深度缓冲,这将会极大地提高精度。所以,牺牲掉一些性能,你就能获得更高精度的深度测试,减少深度冲
突。


我们上面讨论的三个技术是最普遍也是很容易实现的抗深度冲突技术了。还有一些更复杂的技术,但它们依然不能完全消除深度冲突。深度冲突是一个常见的问题,但如果你组合使用了上面列举出来的技术,你可能不会再需要处理深度冲突了。

 

 

你可能感兴趣的:(u3d)