From 0a7452526192eb3650785ed0a68a58d22e183748 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Tue, 8 Oct 2013 21:00:21 +0200 Subject: [PATCH] Shadows for non-lit shader. --- .../Assets/Spine/Shaders/Skeleton.shader | 89 +++++++++++++++--- .../SpineboyAtlas Data/atlas0 material.mat | Bin 4212 -> 4212 bytes .../SpineboyAtlas Data/atlas1 material.mat | Bin 4212 -> 4212 bytes .../SpineboyAtlas Data/atlas2 material.mat | Bin 4212 -> 4212 bytes .../Assets/Spine/Shaders/Skeleton.shader | 89 +++++++++++++++--- spine-unity/Assets/examples/dragon/dragon.mat | Bin 4316 -> 4316 bytes .../Assets/examples/dragon/dragon.unity | Bin 20424 -> 20424 bytes .../Assets/examples/dragon/dragon2.mat | Bin 4316 -> 4316 bytes 8 files changed, 150 insertions(+), 28 deletions(-) diff --git a/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader b/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader index 80153083a..890aea1e3 100644 --- a/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader +++ b/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader @@ -1,21 +1,82 @@ Shader "Spine/Skeleton" { - Properties { - _MainTex ("Texture to blend", 2D) = "black" {} - } - SubShader { - Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } - LOD 100 + Properties { + _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 + _MainTex ("Texture to blend", 2D) = "black" {} + } + // 2 texture stage GPUs + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 Cull Off - Lighting Off ZWrite Off Blend One OneMinusSrcAlpha + Lighting Off - Pass { - ColorMaterial AmbientAndDiffuse - SetTexture [_MainTex] { - Combine texture * primary - } - } - } + Pass { + ColorMaterial AmbientAndDiffuse + SetTexture [_MainTex] { + Combine texture * primary + } + } + + Pass { + Name "Caster" + Tags { "LightMode"="ShadowCaster" } + Offset 1, 1 + + Fog { Mode Off } + ZWrite On + ZTest LEqual + Cull Off + Lighting Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + struct v2f { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + }; + + uniform float4 _MainTex_ST; + + v2f vert (appdata_base v) { + v2f o; + TRANSFER_SHADOW_CASTER(o) + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + uniform sampler2D _MainTex; + uniform fixed _Cutoff; + + float4 frag (v2f i) : COLOR { + fixed4 texcol = tex2D(_MainTex, i.uv); + clip(texcol.a - _Cutoff); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } + } + // 1 texture stage GPUs + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + + Cull Off + ZWrite Off + Blend One OneMinusSrcAlpha + Lighting Off + + Pass { + ColorMaterial AmbientAndDiffuse + SetTexture [_MainTex] { + Combine texture * primary DOUBLE, texture * primary + } + } + } } \ No newline at end of file diff --git a/spine-tk2d/Assets/examples/spineboy/SpineboyAtlas Data/atlas0 material.mat b/spine-tk2d/Assets/examples/spineboy/SpineboyAtlas Data/atlas0 material.mat index 64a0249cf3c6eb8cca149408e118a6dd347b5b02..5f14c2b3f759de72ebf3ba618649db81eaeaccc7 100644 GIT binary patch delta 29 lcmeyO@I_&RHJ8A{6=DZo3fQ>qIHl71^lMJ~W^XP{HUQ6s4Hp0a delta 29 lcmeyO@I_&RHJ89`i<+;Z@p{gkuay4Zd9P`+*_%s~4FJdH43Yo< diff --git a/spine-tk2d/Assets/examples/spineboy/SpineboyAtlas Data/atlas1 material.mat b/spine-tk2d/Assets/examples/spineboy/SpineboyAtlas Data/atlas1 material.mat index 59e0e4c53d76798dab556b40228c1e057b91e100..2007f57a2e5c75ace24ae8f3355167cfe1e815d6 100644 GIT binary patch delta 29 lcmeyO@I_&RHJ8A{6=DZo3fQ>qIHl71^lMJ~W^XP{HUQ6s4Hp0a delta 29 lcmeyO@I_&RHJ89`i<+;Z@p{gkuay4Zd9P`+*_%s~4FJdH43Yo< diff --git a/spine-tk2d/Assets/examples/spineboy/SpineboyAtlas Data/atlas2 material.mat b/spine-tk2d/Assets/examples/spineboy/SpineboyAtlas Data/atlas2 material.mat index ef5e27f63c555e83c1fe0c1ea9e4d1636ab2f442..a3e1ee686c8c961b1d53cdf29d067da0c7c7e438 100644 GIT binary patch delta 29 lcmeyO@I_&RHJ8A{6=DZo3fQ>qIHl71^lMJ~W^XP{HUQ6s4Hp0a delta 29 lcmeyO@I_&RHJ89`i<+;Z@p{gkuay4Zd9P`+*_%s~4FJdH43Yo< diff --git a/spine-unity/Assets/Spine/Shaders/Skeleton.shader b/spine-unity/Assets/Spine/Shaders/Skeleton.shader index 80153083a..890aea1e3 100644 --- a/spine-unity/Assets/Spine/Shaders/Skeleton.shader +++ b/spine-unity/Assets/Spine/Shaders/Skeleton.shader @@ -1,21 +1,82 @@ Shader "Spine/Skeleton" { - Properties { - _MainTex ("Texture to blend", 2D) = "black" {} - } - SubShader { - Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } - LOD 100 + Properties { + _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 + _MainTex ("Texture to blend", 2D) = "black" {} + } + // 2 texture stage GPUs + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 Cull Off - Lighting Off ZWrite Off Blend One OneMinusSrcAlpha + Lighting Off - Pass { - ColorMaterial AmbientAndDiffuse - SetTexture [_MainTex] { - Combine texture * primary - } - } - } + Pass { + ColorMaterial AmbientAndDiffuse + SetTexture [_MainTex] { + Combine texture * primary + } + } + + Pass { + Name "Caster" + Tags { "LightMode"="ShadowCaster" } + Offset 1, 1 + + Fog { Mode Off } + ZWrite On + ZTest LEqual + Cull Off + Lighting Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + struct v2f { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + }; + + uniform float4 _MainTex_ST; + + v2f vert (appdata_base v) { + v2f o; + TRANSFER_SHADOW_CASTER(o) + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + uniform sampler2D _MainTex; + uniform fixed _Cutoff; + + float4 frag (v2f i) : COLOR { + fixed4 texcol = tex2D(_MainTex, i.uv); + clip(texcol.a - _Cutoff); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } + } + // 1 texture stage GPUs + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + + Cull Off + ZWrite Off + Blend One OneMinusSrcAlpha + Lighting Off + + Pass { + ColorMaterial AmbientAndDiffuse + SetTexture [_MainTex] { + Combine texture * primary DOUBLE, texture * primary + } + } + } } \ No newline at end of file diff --git a/spine-unity/Assets/examples/dragon/dragon.mat b/spine-unity/Assets/examples/dragon/dragon.mat index 47ebfa052c1b00b76ffa11910d9d9c7b963bab8d..57cb7c9ed78c18098e7a54086a75dcdd4fa94336 100644 GIT binary patch delta 34 qcmcbkct>%91f$_bNhL0UhbzPmycDo;+i^;z_377~^v&K}6WIXn^bRZl delta 34 qcmcbkct>%91f#)5NhL0U+ZHunMdS6HJ6|dNzw=(xX0tcfL^c5DIt``( diff --git a/spine-unity/Assets/examples/dragon/dragon.unity b/spine-unity/Assets/examples/dragon/dragon.unity index e6bf9cbae024d396de0eaada6fe4faec39300cce..4258bd4df3d9b5e0030e9a281949882842985d50 100644 GIT binary patch delta 14 WcmX>xpYgxpYgU`vU+h&INJ+ diff --git a/spine-unity/Assets/examples/dragon/dragon2.mat b/spine-unity/Assets/examples/dragon/dragon2.mat index 19a78e53a4dbcd5386dec3856897218a934f0393..e4431d44bccf2670908c20c2b0e5847da019a612 100644 GIT binary patch delta 42 zcmV+_0M-B8A>1L57y&V{86pZ0;iwkC=@2|dxXL7j<@Ic5vr7sY1_Sxk7?WoZb!;XP A8~^|S delta 42 zcmV+_0M-B8A>1L57y&S`86pZ0+c