深度写开关 ZWrite

深度写开关 ZWrite,控制是否将来自对象的片元深度值 z 写入深度缓冲,默认开启。

如果绘制不透明物体,设置为 On (默认)
如果绘制半透明物体,设置为 Off

半透明物体,它需要进行深度测试,然后进行alpha混合,但是不必对深度缓冲进行写操作,否则半透明物体后边的不透明物体看上去就是是被半透明物体“挖空”了,并且alpha混合应该也会受到影响

深度测试 ZTest

深度测试 ZTest,
是为了使距离摄像机近的物体遮挡住距离摄像机远的物体,确保场景看起来是正确的。

当片元写入到帧缓冲之前,需要将待写入的片元的深度值z 与 深度缓冲区对应的深度值进行比较测试,只有测试成功才会写入帧缓冲

默认情况都会进行深度测试,LEqual(默认),实现距离摄像机近的物体遮挡住距离摄像机远的物体。(深度值z小于或等于深度缓冲区对应的深度值的片元,写入帧缓冲

深度测试模式 (与深度缓冲中的对应z值进行对比) ZTest xxx
LEqual ,小于等于,默认情况
Less、Greater、GEqual、Equal、NotEqual (一般导致显示不正确)
Always ,总是渲染,相当于关闭深度测测试

ZTest、ZWrite 大致关系应该如下所示

深度写入,将片元深度值z写入到深度缓冲,
这里的片元,应该是说 开启深度写开关的那些物体中,经过深度测试,片元深度值z 与深度缓冲中的数值进行对比,如果满足条件,才会写入。

渲染设置系列3——ZTest、ZWrite

相关文章:

  • 2021-04-28
  • 2021-11-09
  • 2021-06-08
  • 2021-07-12
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
猜你喜欢
  • 2021-12-08
  • 2021-07-24
  • 2021-10-20
  • 2021-08-21
  • 2022-12-23
  • 2021-10-13
相关资源
相似解决方案