From b8f23ebc835606de9db5d8f3c4c165beb95d6e4f Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Tue, 8 Oct 2013 16:55:10 +0200 Subject: [PATCH] Support Unity lighting. --- spine-unity/Assets/Spine/Shaders.meta | 1 - .../Assets/Spine/Shaders/Skeleton.shader | 7 +- .../Assets/Spine/Shaders/SkeletonLit.shader | 84 ++++++++++++++++++ .../Spine/Shaders/SkeletonLit.shader.meta | 5 ++ spine-unity/Assets/examples/dragon/dragon.mat | Bin 4216 -> 4316 bytes .../Assets/examples/dragon/dragon.unity | Bin 16456 -> 20424 bytes .../Assets/examples/dragon/dragon2.mat | Bin 4216 -> 4316 bytes .../Assets/examples/goblins/goblins.mat | Bin 4216 -> 4412 bytes .../Assets/examples/goblins/goblins.unity | Bin 18584 -> 20944 bytes 9 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 spine-unity/Assets/Spine/Shaders/SkeletonLit.shader create mode 100644 spine-unity/Assets/Spine/Shaders/SkeletonLit.shader.meta diff --git a/spine-unity/Assets/Spine/Shaders.meta b/spine-unity/Assets/Spine/Shaders.meta index b1d94071d..96c6a80bf 100644 --- a/spine-unity/Assets/Spine/Shaders.meta +++ b/spine-unity/Assets/Spine/Shaders.meta @@ -1,5 +1,4 @@ fileFormatVersion: 2 guid: ef8189a68a74bec4eba582e65fb98dbd -folderAsset: yes DefaultImporter: userData: diff --git a/spine-unity/Assets/Spine/Shaders/Skeleton.shader b/spine-unity/Assets/Spine/Shaders/Skeleton.shader index d45e63954..80153083a 100644 --- a/spine-unity/Assets/Spine/Shaders/Skeleton.shader +++ b/spine-unity/Assets/Spine/Shaders/Skeleton.shader @@ -1,13 +1,16 @@ -Shader "Skeleton" { +Shader "Spine/Skeleton" { Properties { _MainTex ("Texture to blend", 2D) = "black" {} } SubShader { - Tags { "Queue" = "Transparent" } + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + Cull Off Lighting Off ZWrite Off Blend One OneMinusSrcAlpha + Pass { ColorMaterial AmbientAndDiffuse SetTexture [_MainTex] { diff --git a/spine-unity/Assets/Spine/Shaders/SkeletonLit.shader b/spine-unity/Assets/Spine/Shaders/SkeletonLit.shader new file mode 100644 index 000000000..7cee739f6 --- /dev/null +++ b/spine-unity/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-unity/Assets/Spine/Shaders/SkeletonLit.shader.meta b/spine-unity/Assets/Spine/Shaders/SkeletonLit.shader.meta new file mode 100644 index 000000000..a8444eec9 --- /dev/null +++ b/spine-unity/Assets/Spine/Shaders/SkeletonLit.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: bd83c75f51f5e23498ae22ffcdfe92c3 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/spine-unity/Assets/examples/dragon/dragon.mat b/spine-unity/Assets/examples/dragon/dragon.mat index 4b6dce2daa9ade9fda60eecd624bdda61f71d61e..47ebfa052c1b00b76ffa11910d9d9c7b963bab8d 100644 GIT binary patch delta 153 zcmeyNa7R&+fq^TSfkEI70|NsmkOoo=3?_O;dIlRM1-TSK!lF>j1d_UKQS((aUeCGn zmD2w^?=@{UdvkHJX@aEKfjHi|v?M<*jUl18)0PXw56;NU%gjqHE@ogbHa50ro*XG4 g&k2z!NKKxcC?LuYwwEE^H8-=kI5R(Qav_&60Ga+GhyVZp delta 83 zcmcbk_(MUGfq^TSfkB{xfq{V&NCPPb1`|CaJ;RNXf?SFqVNob%0!ckwA$H)UfQ{RZ ZQ!1@bzviTG_U7VbV+F}DPOcS@2LNJ95ZC|! diff --git a/spine-unity/Assets/examples/dragon/dragon.unity b/spine-unity/Assets/examples/dragon/dragon.unity index 39096fd24ba6bfe068f76fa79a953254a1910247..e6bf9cbae024d396de0eaada6fe4faec39300cce 100644 GIT binary patch delta 2231 zcmb_cU2GIp6u#4zwzSX|TG}nGFcnG*Ez44{O19nZb_=yyVr7wNl(f_CbUQkosk5`t z#bOs@BKV-ztBDVyP4K};RCFcri9k%WiI8YCrug7bB0eZe6JkO%QonO&hAzfOPjcp- z``vTT|J=EZH20>|z*z4$j6E>N7+Vf`0V~_-Z}SI6ce0y{i;ERA4SuO2yM5JPQuhA5 zllcX@X-@DP%VcSg`wCymeqMN`eoF+Gy3NU`sq0!?wOF^3R9T2jxs*q11}OG_kRUczx1n22QP z^P4{3hH{cYgh><==zuz6o7Rp|7>H>{RQ_t&v$avxfK#>t$5lefHN$v&`Fe@*1LAwA ze0?61v!^#)EZ(R?tzS!w*-mONy0>V_r%#44pQurZX4r7GKRu!H-Ia~pu6(0rR5uj@ z`{30`YId3x;L2)#?5?`feTtD##lDiS++0^4n=tK&kTW~aw{ifM`fRyH1(9NnTAmGQG{hN z+ft2$Jtm-9f=aqIB`LOR9Sw8THq@j8)e*EJ=0bavxXRD3spWxP%Xqk@sDj$;US;+%+RXkE(#gEn(C3-C7@V$y|iWp@P;qCFdBM}*~Q;M#qMQg^Di3v3> zt~BIc2|F7xb9;2fQYi)@@JsbtwU@eq!QE@dox(RFi%NcZP2KWMuBkkJ!C!^UZ70np zURPba`j%gGLKLJ~+#6^wTzq4tx$QsB zr+{^4-VAUKin&fc zxcTqXK*;B>3B2-)k)h@maceDDIvNxY$;aSxgf{YQ6;6@@-0J* zZM9Di&0K${_vDU0cKcc${S=kv6~P!^2$p3J1^v?9G;b)YAZj=@o`?p5)>YshG1Yiy z6kXQEvjj$M2xSP-UR@_NKrrYn~(U0i{^96=$#a)k7#ccgRaVt*&rFh3uxuOM*A z2tu3+waSj=Oh{sxb8iJsbY8t|bp81Ag=p|SxhLFmwf0izUidUh4cHUWtih)s znnmvwrCBAg6r8Zklo6MssbSSi=T4e$iAf?vClz6WdC`TM`Io_ZzAm)3j8vUNd?o&L z$WH|+A()E#Z4)%twbE9d44m^ckG4#qCX9Xk*>jOo^KVBP`?Cj*x@pCQ_54)FObA_K zKcwIH?uZP-*WYE-5x2>ZGF=oE5v>?UJPc_(ZRD2^g$nW{iNDZU{Rk$X$)&Q;p!I*- l^S?WvDme1RWHdV!8j|ue!PoisU46yJwPVqPa*7({`v($!>LvgH delta 566 zcmb`CKTASU7{=e5e^Np-C<-#TLSU0fI2aMB5nV;ghK3;UI;aW$qim3pT-%HT<(6L{ z(r)c-IrI@48YQg+hnC2mV`u0Cbl|z~^ZaTwUTDyp(S6{XJNieEn;YDyzZ_H#H(8 zGo^Gch0R%9nPv6xC>xJV?P61s$K>IE^7?O?l_SUcCvz{LeMM9WV=q{2D`Qb-0aUecng9R* diff --git a/spine-unity/Assets/examples/dragon/dragon2.mat b/spine-unity/Assets/examples/dragon/dragon2.mat index 0ae26f6dfcd84071eddd548501b20af5bf1c2bf9..19a78e53a4dbcd5386dec3856897218a934f0393 100644 GIT binary patch delta 153 zcmeyNa7R&+fq^TSfkEI70|NsmkOoo=3?_O;dIlRM1-TSK!lF>j1d_UKQS((aUeCGn zmD2w^?=@{UdvkHJX@aEKfjHi|v?M<*jp6Y6W42r%esD%+US?iuaWMmfv9Yl|^W;bY gc}|E-L2B~kL;+ELu)PfNuDO}T#hLkelMA_o0m&dEN&o-= delta 83 zcmcbk_(MUGfq^TSfkB{xfq{V&NCPPb1`|CaJ;RNXf?SFqVNob%0!ckwA$H)UfQ{RZ ZQ!1@bzviTG_U7VbV+F}DPOcS@2LNJ95ZC|! diff --git a/spine-unity/Assets/examples/goblins/goblins.mat b/spine-unity/Assets/examples/goblins/goblins.mat index 5f3c190da50ac48d75941a95cd9a346e24a64f5b..0a99dbb15cc11e9d8ff850bf33516be36bdb43a5 100644 GIT binary patch delta 255 zcmeyNut$l5fq^TSfkDt_BZm@~q75ShgD3+8GXZIa+ZHunMdS6HJ6|dNzw=(xX0tcf zLsmxS$+`mS^+2r*@lK_=1-^*|Ahi(CV9&q+!Vtg%q~Ze-ixP8k5-aeiV+N{Y2dQ-~ zEy+(y18KJB0`Y@0GV?O?Qj3cj7%oe**mHu!Am(u;RscC%*B9F`PmUCj*M%rANKJOm Z&&e+WN}&O;R@dCj;^NHwyvc=J!T@DQd}&E8xO USs588>k6o|g5((|-xZJt09j`d%m4rY diff --git a/spine-unity/Assets/examples/goblins/goblins.unity b/spine-unity/Assets/examples/goblins/goblins.unity index 431e5948922659706821e8f808a7a96d06ee403f..dc8455615a73c998d76855ce9651c432a03c267f 100644 GIT binary patch delta 1222 zcmY*ZO-xf+6h2p=LX{tFXKIT|5ekDp3@C|W6j~ku&1j|qF~o5OpY*o8%>Z;aH?+=P>{rRD?|dYkJErT(}Yp_U)tC}Xmq>{-`R4o1T*O%%(`ODE&b==Z{0;O6YqkYyG$5Mh8>D(yP5 z;DOByHdMe7GbQmwIE>}Cn$U#2lI=`0$UmplF%D5EweI zluf+hym|4MX)9fBR2RFx^i^JB+MP9Rdrr3`Yvyt?g?FPngCn--CDe}2w@c^qwI2D= zQ)Wy$DVaa1Ql7{$Tp9@A`*5@9KoN;GcCJY(Adc7i1O6O|tu^>blb;>-)vq?f%;s!a zz~n%9;Xv(H4;(X7)~qMbZk8wTtxJ{8?qNL4Gm*0La@t)#8+$oR|7pTiet()&N#vzT z6Cm~X>|0YHKomC6Ic+P`g-g1|ZcOfJY5aLTt0en|>ctPZnD~749Q{NWqMWC_G=KBA ze`$ax$>&L7drVjl&1gIMbgi^KA#9ScB%OJD+5RGIk(@sA`G#@4zX^LsSe*RCs-6G; zr5mjQFzGA+cI)0w6L^Eb+XV96VoNcRM)-RYY%*r>gVDG!+)%o1Jglmr*8%Y8Xy?M{ z#*!NC68PE(_OJq65HF6wv3PL~-ZzmY6?H#q>l=*!j2yy`Ms=Jk<1A_{X4|FydZv~1aOm6fNR@?xTF#(E#+zc{dJ5c5Y nP|N|yb_C(cAH6a*XL#>n26__$7$ru2`oys