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"
}
unity shader案例分析(一)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.