參考風(fēng)宇沖Unity3D教程學(xué)院 Shader第十一講 剔除及深度測試
作者寫的很好带膜,我摘抄一部分
一 Culling陰影面剔除
Culling陰影面剔除是一種優(yōu)化技術(shù)。所有的多邊形都有正反兩面帮寻,而你永遠只能看見其中一面弥鹦,不信的話拿張紙板或者一面鏡子看看你能不能同時看到兩面向抢。通常多邊形面向屏幕里面的背面,我們看不見硕淑,所以會將該面剔除课竣。
Cull Off 關(guān)閉陰影面剔除
Cull Back 剔除背面
Cull Front剔除正面
二 Depth Testing深度測試
Depth Testing:深度測試嘉赎,也叫深度緩沖。只有最靠近觀察者的物體會被繪制稠氮。深度即Z,該值越小表示離觀察者越近曹阔,該值越大表示離觀察者越遠。
Shader里默認有如下代碼
ZWrite On
ZTest LEqual
意思即使Shader里沒有寫任何關(guān)于Depth Testing的代碼隔披,Shader也會執(zhí)行深度寫入及深度測試赃份。
但是Unity官方所有半透明Shader都是不寫深度的
因此半透明物體透明度很低的話, 物體被遮擋部分就顯示不了奢米。
【顯示被半透明物遮擋的東西】
拷貝半透明Shader,保留
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}Blend SrcAlpha OneMinusSrcAlpha
把ZWrite Off
改成ZWrite On即可