Shader Learn

06 空间、相机与深度

深度缓冲:决定前后遮挡

方块和球互相穿插;后面两块板子几乎贴在一起。

-40
讲解

带下划线的数字可以左右拖动

camera.near = ;camera.far = 100;material.depthTest = ;// 正常颜色// 两块板子只相隔 0.004
深度测试新片元的深度 < 缓冲区里的深度时才写入;否则丢弃。

深度缓冲给每个像素记一个“最近距离”。near 太小会浪费精度,导致远处的面互相闪烁(z-fighting)。

试一试

  • 关掉深度测试,后画的物体总在前面
  • 把 near 调到 0.0001,看后面两块板子闪烁
  • 切到深度缓冲视图