Shader "Custom/test_1" {
Properties {
_MainTex ("Albedo (RGB)", 2D) = "white" {} //纹理
_BumpMap("Bumpmap",2D) = "bump"{} //凹凸纹理
_RimColor("Rim Color",Color) = (0.17,0.36,0.81,0.0) //边缘颜色
_RimPower("Rim Power",Range(0.6,9.0)) = 1.0 //边缘颜色强度
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
//
#pragma surface surf Lambert
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;//主纹理
sampler2D _BumpMap;//凹凸纹理
float4 _RimColor;//边缘颜色
float _RimPower;//边缘颜色强度
struct Input {
float2 uv_MainTex;//纹理贴图
float2 uv_BumpMap;//法线贴图
float3 viewDir;//观察方向
};
void surf (Input IN, inout SurfaceOutputStandard o) {
//表面反射颜色为纹理颜色
o.Albedo = tex2D(_MainTex,IN.uv_MainTex).rgb;
//表面法线为凹凸纹理的颜色
o.Normal = UnpackNormal(tex2D(_BumpMap,IN.uv_BumpMap));
//边缘颜色
half rim = 1.0 - saturate(dot (normalize(IN.viewDir),o.Normal));
//边缘颜色强度
o.Emission = _RimColor.rgb * pow(rim,_RimPower);
}
ENDCG
}
FallBack "Diffuse"
}