Shader
"OutLine/RedOutLine"
{
Properties
{
_Switch("Value",Range(0,1)) = 0
_MainTex("Texture",2D) = "white"{}
_BumpMap("Bumpmap",2D) = "bump" {}
_RimColor("RimColor",Color) = (0.26,0.19,0.16,0.0)
_RimPower("RimPower",Range(0.5,8.0)) = 3.0
}
SubShader
{
Tags{
"RenderType" = "Opaque"
}
CGPROGRAM
#pragma surface surf Lambert
struct
Input {
float2 uv_MainTex;
float2 uv_BumpMap;
float3 viewDir;
};
sampler2D _MainTex;
sampler2D _BumpMap;
float4 _RimColor;
float _RimPower;
float _Switch;
void
surf(Input IN, inout SurfaceOutput o) {
o.Albedo =
tex2D(_MainTex, IN.uv_MainTex).rgb;
o.Normal =
UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
half rim = 0;
if (_Switch != 0)
{
rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
}
//saturate
//限制值于[0,1]之间
o.Emission = _RimColor.rgb * pow(rim, _RimPower);
}
ENDCG
}
Fallback "Diffuse"
}
【Shader】人物选中高亮状态
最新推荐文章于 2021-01-05 09:08:35 发布