关于透明度测试,主要是通过clip函数来实现裁剪功能
函数:void clip(float4 x);void clip(float3 x);void clip(float2 x);void clip(float x).
如果指定的一个参数为负数,就会舍弃当前像素的输出颜色
SubShader {
Tags {“Queue”=“AlphaTest” “IgnoreProjector”=“True” “RenderType”=“TransparentCutout”}
Pass {
Tags { "LightMode"="ForwardBase" }
...
...
fixed4 frag(v2f i) : SV_Target {
...
clip (texColor.a - _Cutoff);
...
}
这里就是通过对该像素采样后的alpha通道来进行alpha测试,来决定该像素是否参与渲染。
透明度混合:简单理解,就是加了alpha通道混合,来实现透明度->a通道为1就不透明,为0就透明的线性计算。
这里列的都是要注意的地方:
SubShader {
Tags {“Queue”=“Transparent” “IgnoreProjector”=“True” “RenderType”=“Transparent”}
…
…
Pass{
…
Blend SrcAlpha OneMinus