summaryrefslogtreecommitdiff
path: root/Assets/Art/Shaders/Effects/RimLight 1.shader
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Art/Shaders/Effects/RimLight 1.shader')
-rw-r--r--Assets/Art/Shaders/Effects/RimLight 1.shader35
1 files changed, 30 insertions, 5 deletions
diff --git a/Assets/Art/Shaders/Effects/RimLight 1.shader b/Assets/Art/Shaders/Effects/RimLight 1.shader
index eb751153..bcf6609c 100644
--- a/Assets/Art/Shaders/Effects/RimLight 1.shader
+++ b/Assets/Art/Shaders/Effects/RimLight 1.shader
@@ -15,6 +15,8 @@ Shader "ASESampleShaders/RimLight"
_StencilMask("Mask Layer", Range(0, 255)) = 1
[Enum(CompareFunction)] _StencilComp("Mask Mode", Int) = 6
+ _Albedo("Albedo", 2D) = "white" {}
+ _CutOff("Alpha CutOff", Float) = 0.5
}
SubShader
{
@@ -36,7 +38,7 @@ Shader "ASESampleShaders/RimLight"
Tags{ "Queue" = "AlphaTest-1" "IgnoreProjector" = "False" "RenderType" = "Transparent" "RenderType" = "MKGlow" }
Pass
{
- Cull Back
+ Cull Front
ZTest LEqual
ZWrite Off
Blend One OneMinusSrcAlpha
@@ -44,13 +46,29 @@ Shader "ASESampleShaders/RimLight"
#pragma vertex vert
#pragma fragment frag
+ struct appdata
+ {
+ float4 vertex : POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+
+ struct v2f
+ {
+ float2 uv : TEXCOORD0;
+ float4 vertex : SV_POSITION;
+ };
+
// vertex shader
// this time instead of using "appdata" struct, just spell inputs manually,
// and instead of returning v2f struct, also just return a single output
// float4 clip position
- float4 vert(float4 vertex : POSITION) : SV_POSITION
+ v2f vert(appdata i)
{
- return UnityObjectToClipPos(vertex);
+ v2f o;
+ o.vertex = UnityObjectToClipPos(i.vertex);
+ o.uv = i.uv;
+ return o;
}
// color from the material
@@ -58,8 +76,12 @@ Shader "ASESampleShaders/RimLight"
float _Intensity;
fixed4 _MKGlowColor;
float _MKGlowPower;
+
+ sampler2D _Albedo;
+ float _CutOff;
+
// pixel shader, no inputs needed
- fixed4 frag() : SV_Target
+ fixed4 frag(v2f i) : SV_Target
{
//_Color.rgb *= _Intensity;
//_Color.rgb *= _Color.a;
@@ -69,7 +91,10 @@ Shader "ASESampleShaders/RimLight"
//_MKGlowColor = _Color;
//_MKGlowPower = _Intensity;
-
+ float alpha = tex2D(_Albedo, i.uv);
+ if(alpha <= _CutOff)
+ discard;
+ _Color.rgb *= _Intensity;
return _Color; // just return it
}
ENDCG