From fe40a2f2e6417256f72d33c0abc5a36e09124e55 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Tue, 8 Oct 2013 19:18:43 +0200 Subject: [PATCH] Support Unity lighting. --- spine-tk2d/Assets/Spine/Shaders.meta | 5 ++ .../Assets/Spine/Shaders/Skeleton.shader | 21 +++++ .../Assets/Spine/Shaders/Skeleton.shader.meta | 5 ++ .../Assets/Spine/Shaders/SkeletonLit.shader | 84 ++++++++++++++++++ .../Spine/Shaders/SkeletonLit.shader.meta | 5 ++ .../SpineboyAtlas Data/atlas0 material.mat | Bin 4196 -> 4212 bytes .../SpineboyAtlas Data/atlas1 material.mat | Bin 4196 -> 4212 bytes .../SpineboyAtlas Data/atlas2 material.mat | Bin 4196 -> 4212 bytes .../Assets/examples/spineboy/spineboy.unity | Bin 18360 -> 21648 bytes 9 files changed, 120 insertions(+) create mode 100644 spine-tk2d/Assets/Spine/Shaders.meta create mode 100644 spine-tk2d/Assets/Spine/Shaders/Skeleton.shader create mode 100644 spine-tk2d/Assets/Spine/Shaders/Skeleton.shader.meta create mode 100644 spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader create mode 100644 spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader.meta diff --git a/spine-tk2d/Assets/Spine/Shaders.meta b/spine-tk2d/Assets/Spine/Shaders.meta new file mode 100644 index 000000000..488bc7cd1 --- /dev/null +++ b/spine-tk2d/Assets/Spine/Shaders.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9cb3e0bb833385047a0c479316f3d5df +folderAsset: yes +DefaultImporter: + userData: diff --git a/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader b/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader new file mode 100644 index 000000000..80153083a --- /dev/null +++ b/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader @@ -0,0 +1,21 @@ +Shader "Spine/Skeleton" { + Properties { + _MainTex ("Texture to blend", 2D) = "black" {} + } + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + + Cull Off + Lighting Off + ZWrite Off + Blend One OneMinusSrcAlpha + + Pass { + ColorMaterial AmbientAndDiffuse + SetTexture [_MainTex] { + Combine texture * primary + } + } + } +} \ No newline at end of file diff --git a/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader.meta b/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader.meta new file mode 100644 index 000000000..753129e68 --- /dev/null +++ b/spine-tk2d/Assets/Spine/Shaders/Skeleton.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 1e8a610c9e01c3648bac42585e5fc676 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader b/spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader new file mode 100644 index 000000000..7cee739f6 --- /dev/null +++ b/spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader @@ -0,0 +1,84 @@ +Shader "Spine/Skeleton Lit" { + 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 + ZWrite Off + Blend One OneMinusSrcAlpha + + Pass { + Tags { "LightMode"="Vertex" } + ColorMaterial AmbientAndDiffuse + Lighting On + SetTexture [_MainTex] { + Combine texture * primary DOUBLE, 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 + + Pass { + Tags { "LightMode"="Vertex" } + ColorMaterial AmbientAndDiffuse + Lighting On + SetTexture [_MainTex] { + Combine texture * primary DOUBLE, texture * primary + } + } + } +} \ No newline at end of file diff --git a/spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader.meta b/spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader.meta new file mode 100644 index 000000000..a8444eec9 --- /dev/null +++ b/spine-tk2d/Assets/Spine/Shaders/SkeletonLit.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: bd83c75f51f5e23498ae22ffcdfe92c3 +ShaderImporter: + defaultTextures: [] + userData: 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 32a5ab1524c3dc67303805f30be8b29c00368a86..64a0249cf3c6eb8cca149408e118a6dd347b5b02 100644 GIT binary patch delta 98 zcmaE&@I^tAfq^TSfkB{zfq{V&NCPPb1`|CaJ;RNXf?SFqVNob%0!iJrsQD@yujkzP lO6mWd_nJ1Fy}1P0Bp87*>_8mvTw0Q!md0@Q%o$sdY5;3~6qx`3 delta 82 zcmeyO@I*n9fq^TSfk7aJfq{V&NCPPb1`|CaJ%f#sf?SFqVNob%0!iI}bInmBFTruz VLZ&@W*YsT3?9C;}#sQK60RT-V56S=l 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 9f3d6cf09a72e1dcdf007f55dd433bc857639f4f..59e0e4c53d76798dab556b40228c1e057b91e100 100644 GIT binary patch delta 98 zcmaE&@I^tAfq^TSfkB{zfq{V&NCPPb1`|CaJ;RNXf?SFqVNob%0!iJrsQD@yujkzP lO6mWd_nJ1Fy}1P0Bp87*>_8mvTw0Q!md0@Q%o$sdY5;3~6qx`3 delta 82 zcmeyO@I*n9fq^TSfk7aJfq{V&NCPPb1`|CaJ%f#sf?SFqVNob%0!iI}bInmBFTruz VLZ&@W*YsT3?9C;}#sQK60RT-V56S=l 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 fbfed7cb4745921606638d5ebd262c17fa1a8621..ef5e27f63c555e83c1fe0c1ea9e4d1636ab2f442 100644 GIT binary patch delta 98 zcmaE&@I^tAfq^TSfkB{zfq{V&NCPPb1`|CaJ;RNXf?SFqVNob%0!iJrsQD@yujkzP lO6mWd_nJ1Fy}1P0Bp87*>_8mvTw0Q!md0@Q%o$sdY5;3~6qx`3 delta 82 zcmeyO@I*n9fq^TSfk7aJfq{V&NCPPb1`|CaJ%f#sf?SFqVNob%0!iI}bInmBFTruz VLZ&@W*YsT3?9C;}#sQK60RT-V56S=l diff --git a/spine-tk2d/Assets/examples/spineboy/spineboy.unity b/spine-tk2d/Assets/examples/spineboy/spineboy.unity index c79575cd46e1ed7bb9ebcab278f3e1ed407d86e9..50a6987edf2caeba8c7dd098e662e37ab3d1d850 100644 GIT binary patch delta 1981 zcmbW1YfM~K5P;7C3cEa(*9r^EW0yBbmxtJZ0^JuxDn@4~g0yKwieErwWr zG^WHyq0?$(Vq;QGv@tQd{XwFk);5tJYN9d5m?~oYWl}|d84bmm`{41{o6Md$-_FdL zb7sz2JTh6|XOOx$avI&onnAA4~~x zxRYXc_eCTvriNr89v_H^iY7%RQDtbqL$#L-FmAS&?tEtbX z{$FnwY^OJI7x>!h;p6rkD7R&R)aHadn-gBjaC0}f?A5#sy79Lh@@<9iUAlu;pjOW- zq08pu9+e9%_v=E7%7!fs1Ql{b<)&Ozl!k|Sc z^l@Wg={W9Xq_0zK{-vAPjEP|~EXHGULX%<&{8U_-hmkc^RHn3P-LC}mEwf8PT%VOv z_KuNQR8z#bf!u@&EYvSVj6IY=eu=AiR6MCARIwNHHMYZO>2lcg*28Is6a48;EY7C8 z)Dc#N6AuV-Oy7eC@?5UFX2t`PT0)TJdA$TP!tAUVfw9U8XTK~ML3KrsS*6FkS=n7= z?MjJ=>O(Oz9jtCiAzXI3c^zDH)i&4fI}XnL`pj_LT?@}y-*W@-`%7}n^A~1jWibwp zo|1F-*$NCeEJUP)aTrZ>82JX?tLNQBiwBg5q>7W;z=3{fro_4)LmpGxqj*jMRTQx3 zqQ0xc`_g30!%}c=^wmi{Hy=2fDsx*7S|zLR3Fh!pi2A2aJ@HF_Nh{V|LK7-I$&<+5 zLghT_)ZipfA?w8Gbp5GKNtSQDSaSy1E2vw(E67~f`qRkhva2|rL$-*l26e9~fb88= zc8Xm@K)pwD9-$v2?_cBsvSnl)_&+^26!0}<>&X152TZv=wDhR$5MxU?x03lC*+pa? zWRIBg2eMU@E#UfW0sq)S_`M0oa8B|kvcHkdpzbu~FJ#krdG;r0YuPxyifj&TtcC5! zS~D1X9GSJbOk`(}`H@*kXEh*PN4WoJvXN~eJFp0R6Igya7hSDS#ao$BC&hS6LczCV zd?F#qc=gBeLaBmf#F%4GWwJD(3hKP!;E9M)At7s?-9WGrtV})^^l_@QUSRU2!czm# zM~y*aK1x{cReTf#*(2*OAQn2@2|owZ{M1y|Q82c6^q?@Dd+-FdP&@&$qedZ{FTWV< z!O;(&2FvmY?ge2C7W$e!6uEo*bZ_USm)CB5Fx1ojj(qf3;Txe%Z+ZB~jiQ^d*w+ki zhu(+5aM>a9W-u2X;~c&UUrFn{b@e(%i9l;OJNawhRc@H$-yB3dsc6`3&kgc1{?x%(<=2+p{^Bis${*7ztLEGz46fUkpP(BD_;AXD>S zY#w-_uRW6xy@5Z}qg6#GO&>lsxn@}%d2?P5*tos)+1l$LVP5})8Cwq;qh-a|e`Y`1 AegFUf delta 589 zcmXw%%S#(k6vodnG0ucGil&-2^)V(;A2gYS3R$#hDp;a14@79eMP2yBq)?T*5NtPs z3)`fpEiU>8SSj7iCZ(G|*NSe%g-aJzYxgyNH;xy+d%y3;<(zYeDSYG72R4YF4iP;o z5s?o65+^+hMM8bk5xT5YDh)*=#F};B9%X3=|FA}C2H6Tb=N+=&UMu}t4|^pZeZY4l zqBqHE)XU9Px2yTNMS9%<_DR|ukfP?5H+3GqC&lPpSI?`naJt`s(N3*W*xLf0|;?jr741g00wW0$J$-Yzr(0@3r+0Osl;au&5ajJ;5Z+nH^X8*TMjiT#iNMZTgltvq8(umRMVP7aLq3?*A?2l