39 lines
934 B
Plaintext
39 lines
934 B
Plaintext
|
|
Shader "YXZ/Effect/TransparentRim" {
|
|
Properties {
|
|
|
|
|
|
_RimColor ("Rim Color", Color) = (0.5,0.5,0.5,0.5)
|
|
_InnerColor ("Inner Color", Color) = (0.5,0.5,0.5,0.5)
|
|
_InnerColorPower ("Inner Color Power", Range(0.0,1.0)) = 0.5
|
|
_RimPower ("Rim Power", Range(0.0,5.0)) = 2.5
|
|
_AlphaPower ("Alpha Rim Power", Range(0.0,8.0)) = 4.0
|
|
_AllPower ("All Power", Range(0.0, 10.0)) = 1.0
|
|
|
|
|
|
}
|
|
SubShader {
|
|
Tags { "Queue" = "Transparent" }
|
|
|
|
CGPROGRAM
|
|
#pragma surface surf Lambert alpha
|
|
struct Input {
|
|
float3 viewDir;
|
|
INTERNAL_DATA
|
|
};
|
|
float4 _RimColor;
|
|
float _RimPower;
|
|
float _AlphaPower;
|
|
float _AlphaMin;
|
|
float _InnerColorPower;
|
|
float _AllPower;
|
|
float4 _InnerColor;
|
|
void surf (Input IN, inout SurfaceOutput o) {
|
|
half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal));
|
|
o.Emission = _RimColor.rgb * pow (rim, _RimPower)*_AllPower+(_InnerColor.rgb*2*_InnerColorPower);
|
|
o.Alpha = (pow (rim, _AlphaPower))*_AllPower;
|
|
}
|
|
ENDCG
|
|
}
|
|
//Fallback "VertexLit"
|
|
} |