From 6da58244f6f694e6539ed0e13104d18caf48e12f Mon Sep 17 00:00:00 2001 From: pharan Date: Fri, 13 Jul 2018 22:55:49 +0800 Subject: [PATCH 1/2] [unity] Add shadow to Skeleton Fill shader. --- .../Shaders/Spine-Skeleton-Fill.shader | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader index 161b03b59..1c5ab61fe 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader @@ -1,4 +1,4 @@ -// - Unlit + no shadow +// - Unlit // - Premultiplied Alpha Blending (Optional straight alpha input) // - Double-sided, no depth @@ -59,6 +59,46 @@ Shader "Spine/Skeleton Fill" { } ENDCG } + + Pass { + Name "Caster" + Tags { "LightMode"="ShadowCaster" } + Offset 1, 1 + ZWrite On + ZTest LEqual + + Fog { Mode Off } + Cull Off + Lighting Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + sampler2D _MainTex; + fixed _Cutoff; + + struct VertexOutput { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + }; + + VertexOutput vert (appdata_base v) { + VertexOutput o; + o.uv = v.texcoord; + TRANSFER_SHADOW_CASTER(o) + return o; + } + + float4 frag (VertexOutput i) : COLOR { + fixed4 texcol = tex2D(_MainTex, i.uv); + clip(texcol.a - _Cutoff); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } } FallBack "Diffuse" -} \ No newline at end of file +} From c4f013b99e62a4f986c068979fc17e0bcb83358d Mon Sep 17 00:00:00 2001 From: pharan Date: Fri, 13 Jul 2018 22:57:33 +0800 Subject: [PATCH 2/2] [unity] Add cutoff property to Fill shader. --- .../spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader | 1 + 1 file changed, 1 insertion(+) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader index 1c5ab61fe..f331ada19 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/Shaders/Spine-Skeleton-Fill.shader @@ -7,6 +7,7 @@ Shader "Spine/Skeleton Fill" { _FillColor ("FillColor", Color) = (1,1,1,1) _FillPhase ("FillPhase", Range(0, 1)) = 0 [NoScaleOffset] _MainTex ("MainTex", 2D) = "white" {} + _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 } SubShader {