RimAlhpa shader

 1 Shader "RimAlpha" {
 2     Properties {
 3         _MainTex ("Texture", 2D) = "white" {}
 4         _BumpMap ("Bumpmap", 2D) = "bump" {}
 5         _RimColor ("Rim Color", Color) = (0.231,0.933,0.890,0.5)
 6         _RimPower ("Rim Power", Range(0.5,8.0)) = 1.0
 7          _Color ("Main Color", Color) = (1,1,1,1)   
 8     
 9     }
10     SubShader {
11         Tags { 
12             "Queue"="Transparent" 
13             "IgnoreProjector"="True" 
14             "RenderType"="Transparent" 
15         }
16 
17         ZWrite Off
18         Blend SrcAlpha One
19         AlphaTest Greater .01
20 
21         CGPROGRAM
22         #pragma surface surf BlinnPhong alphatest:_Cutoff  
23 
24         struct Input {
25             float2 uv_MainTex;
26             float2 uv_BumpMap;
27             float3 viewDir;
28         };
29         sampler2D _MainTex;
30         sampler2D _BumpMap;
31         float4 _RimColor;
32         float _RimPower; 
33         void surf (Input IN, inout SurfaceOutput o) {
34             o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
35             o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
36             half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal));
37             o.Alpha = pow (rim, _RimPower);
38             o.Emission = _RimColor.rgb * pow (rim, _RimPower) * 1;
39         }
40         ENDCG
41     } 
42     Fallback "Diffuse"
43 }

 

上一篇:Shader变体使用策略


下一篇:在openGL里写一个Shader