Unity Shader (四)Alpha测试(alpha test)

前言:经过片段处理的像素,这个时候理论上要去经过混合运算了,但是为了优化混合,程序还可以使用alpha测试进行像素剔除。

AlphaTest的分类

Greater/GEqual/Less/LEqual/Equal/NotEqual/Always/Never

常用:AlphatTest一般用于具有凹型物体,比如树叶

代码

Shader "Custom/Alpha Test" {
    Properties {
        //定义一个贴图
        _MainTex ("Base (RGB)", 2D) = "white" {} 
        _CutOff("Alpha cutoff", Range(0, 1)) =0.5
    }
    SubShader 
    {       

        Pass
        {
            alphatest greater[_CutOff]
            SetTexture [_MainTex] 
            {
                Combine texture * primary  //正面赋予贴图
            }
        }
    } 
    FallBack "Diffuse"
}

例子跟之前的一样,一个道童,这里不截图了,当_cutoff =1 的时候你会发现道童不渲染了,也就是没有比alpha值还大的像素了

猜你喜欢

转载自blog.csdn.net/pdw_jsp/article/details/54314727