效果图
玩家主角被建筑物的遮罩,貌似是很简单的实现方法
有用射线的,也有用Zwrite的
也就是除了多个Pass以外,其实ZWrite和ZTest也很重要
今天就来理一理这些参数和知识点
理论部分
ZTest:深度测试,开启后测试结果决定片元是否被舍弃,可配置
ZWrite:深度写入,开启后决定片元的深度值是否写入深度缓冲,可配置
ZTest可设置的测试规则:
ZTest Less:深度小于当前缓存则通过
ZTest Greater:深度大于当前缓存则通过
ZTest LEqual:深度小于等于当前缓存则通过
ZTest GEqual:深度大于等于当前缓存则通过
ZTest Equal:深度等于当前缓存则通过
ZTest NotEqual:深度不等于当前缓存则通过
ZTest Always:不论如何都通过
实战部分
SubShader
{
Tags{"RenderType" = "Opaque" "Queue" = "Geometry"}
//---------- The Blocked Part ----------
Pass
{
ZTest Great