参考风宇冲Unity3D教程学院 Shader第十一讲 剔除及深度测试
作者写的很好,我摘抄一部分
一 Culling阴影面剔除
Culling阴影面剔除是一种优化技术。所有的多边形都有正反两面,而你永远只能看见其中一面,不信的话拿张纸板或者一面镜子看看你能不能同时看到两面。通常多边形面向屏幕里面的背面,我们看不见,所以会将该面剔除。
Cull Off 关闭阴影面剔除
Cull Back 剔除背面
Cull Front剔除正面
二 Depth Testing深度测试
Depth Testing:深度测试,也叫深度缓冲。只有最靠近观察者的物体会被绘制。深度即Z,该值越小表示离观察者越近,该值越大表示离观察者越远。
Shader里默认有如下代码
ZWrite On
ZTest LEqual
意思即使Shader里没有写任何关于Depth Testing的代码,Shader也会执行深度写入及深度测试。
但是Unity官方所有半透明Shader都是不写深度的
因此半透明物体透明度很低的话, 物体被遮挡部分就显示不了。
【显示被半透明物遮挡的东西】
拷贝半透明Shader,保留
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}Blend SrcAlpha OneMinusSrcAlpha
把ZWrite Off
改成ZWrite On即可