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

深度写开关 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 与深度缓冲中的数值进行对比,如果满足条件,才会写入。

这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值