//AlphaTest:
Shader "Siyi/AlphaTest" { Properties { _MainTex("MainTex",2D) = "white"{} _BumpMap("BumpMap",2D) = "white"{} _SpecMap("SpecMap",2D) = "white"{} _SpecPower("SpecPower",Range(0,1)) = .2 _CutOff("AlphaTest",Range(0,1)) = .5 } SubShader { Tags{"RenderType"="Opaque"} LOD 200 CGPROGRAM #pragma surface surf BlinnPhong alphatest:_CutOff sampler2D _MainTex; sampler2D _BumpMap; sampler2D _SpecMap; float _SpecPower; struct Input { float2 uv_MainTex; float2 uv_BumpMap; float2 uv_SpecMap; }; void surf(Input IN,inout SurfaceOutput o) { //MainTex float4 tex = tex2D(_MainTex,IN.uv_MainTex); o.Albedo = tex.rgb; //Alpha Test o.Alpha = tex.a; //BumpMap float4 bumpTex = tex2D(_BumpMap,IN.uv_BumpMap); o.Normal = UnpackNormal(bumpTex); //Specular Map float4 specTex = tex2D(_SpecMap,IN.uv_SpecMap); o.Gloss = specTex.rgb; o.Specular = _SpecPower; } ENDCG } FallBack "Diffuse" }
//效果: