ThreeJS z-fighting 问题

691 阅读1分钟

www.cnblogs.com/lst619247/p…

Z-Fighting

  • 模型的重叠部位便不停的闪烁起来。
  • image.png
  • 深度缓冲(Z-Buffer)是一个二维数组

解决 Z-Fighting

  • 让各模型渲染结果不要在同一个像素出现相同深度值
    • 手动设置一定的偏移即可让这个问题解决
    • 设置合适的near和far值(靠近相机的地方精度更高)
    • 使用 logarithmicDepthBuffer 缓冲(精度更高)
      • 会使 early-z 的测试失效,从而造成一定程度的性能浪费,使用时应慎重。
    • 使用 polygonoffset
  • 人为设置渲染顺序,这样即使出现相同深度值,也能正确渲染
    • 设置 render order