From 4fc4768083ca22d949d7a6bfdd213e21bfc6ddeb Mon Sep 17 00:00:00 2001 From: Orkuncakilkaya Date: Tue, 15 Sep 2026 12:05:43 +0300 Subject: [PATCH] fix(shaders): Vulkan SPIR-V keeps the near half of the depth range The renderer's projections are OpenGL's, whose clip-space depth runs from -w to w; Vulkan clips everything below 0. `ludic-dev shaders` now wraps each vertex stage - its own main runs, then gl_Position.z = (z + w) / 2 - so every variant's depth lands in [0, w]. The GLSL the OpenGL renderer compiles is untouched. No y flip is needed: a Vulkan target's row 0 is where OpenGL's is (NDC y = -1), so render to texture, sampling and gl_FragCoord agree between the two, and only the present and the screenshot flip. 45 vertex modules regenerated (spirv-val clean, manifest unchanged); ludic-dev test 140 passed. Co-Authored-By: Claude Opus 5 --- .../shaders/spv/01089da8.vert.spv | Bin 9396 -> 9628 bytes .../shaders/spv/1b654972.vert.spv | Bin 1716 -> 2012 bytes .../shaders/spv/1ce5c5d1.vert.spv | Bin 10792 -> 11024 bytes .../shaders/spv/1f95f31b.vert.spv | Bin 7708 -> 7972 bytes .../shaders/spv/1fde9cd2.vert.spv | Bin 4896 -> 5128 bytes .../shaders/spv/254e7887.vert.spv | Bin 9740 -> 9972 bytes .../shaders/spv/2e2908c8.vert.spv | Bin 7708 -> 7972 bytes .../shaders/spv/2ee6d2e3.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/3733fc38.vert.spv | Bin 4152 -> 4384 bytes .../shaders/spv/3b183d8f.vert.spv | Bin 10792 -> 11024 bytes .../shaders/spv/3e4b62f9.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/428caa3a.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/439a2253.vert.spv | Bin 9740 -> 9972 bytes .../shaders/spv/46e2325c.vert.spv | Bin 2244 -> 2540 bytes .../shaders/spv/4a8e9f28.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/4be7acd9.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/4cf96468.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/4d4fa91b.vert.spv | Bin 4052 -> 4284 bytes .../shaders/spv/4dda406a.vert.spv | Bin 10792 -> 11024 bytes .../shaders/spv/512004a1.vert.spv | Bin 10736 -> 10968 bytes .../shaders/spv/638623c2.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/676965ab.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/725523d9.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/79b77ed9.vert.spv | Bin 11080 -> 11312 bytes .../shaders/spv/7ed7de52.vert.spv | Bin 23312 -> 23544 bytes .../shaders/spv/858f5089.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/86f427b0.vert.spv | Bin 9396 -> 9628 bytes .../shaders/spv/9068df1c.vert.spv | Bin 5512 -> 5744 bytes .../shaders/spv/9d3e2ddd.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/9dce3246.vert.spv | Bin 9396 -> 9628 bytes .../shaders/spv/a45356c7.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/a5ad521e.vert.spv | Bin 4896 -> 5128 bytes .../shaders/spv/a64015f2.vert.spv | Bin 4824 -> 5056 bytes .../shaders/spv/b4587cd4.vert.spv | Bin 11136 -> 11368 bytes .../shaders/spv/b79a1f4e.vert.spv | Bin 4824 -> 5056 bytes .../shaders/spv/b964507f.vert.spv | Bin 10736 -> 10968 bytes .../shaders/spv/b9fc2041.vert.spv | Bin 10792 -> 11024 bytes .../shaders/spv/bf3151c8.vert.spv | Bin 7708 -> 7972 bytes .../shaders/spv/bfa15301.vert.spv | Bin 10792 -> 11024 bytes .../shaders/spv/c57b4f14.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/e18e40c9.vert.spv | Bin 1316 -> 1596 bytes .../shaders/spv/e9b6300c.vert.spv | Bin 5512 -> 5744 bytes .../shaders/spv/f34dce08.vert.spv | Bin 9340 -> 9572 bytes .../shaders/spv/f4382918.vert.spv | Bin 7708 -> 7972 bytes .../shaders/spv/f4a2b586.vert.spv | Bin 11808 -> 12040 bytes tools/ludic-cli/shaders.ludic | 8 +++++++- 46 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/ludic.render3d/shaders/spv/01089da8.vert.spv b/packages/ludic.render3d/shaders/spv/01089da8.vert.spv index f68be1d7b51d56445fb9c5b28a08310690ec9f9e..ec6859ea29a99146e10a1b70d6bb8d061a31d756 100644 GIT binary patch literal 9628 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 Vam@X+H)7qGV|Lzhw2oy zfv)5F7tCKWv~j@_^hRTS@UTw40f! zF^k0W>$q9Gu#Q{AERr$n!To9c25}nS3a+Mlw>Z^5WenyVU8_o|R*f-z7T%ut8VbX- zeF+|utY=%PuNrx-ZDoWv6dr}U_||mI+e*E)o|L=(LnD2RN%mr>)HT@6pj_8ctaoR3 zX=Qn1+hF&=<-L`S)mqPr?rQs{0w^nrEWK= zG{oQ|-xD)f8mRP?_i66$U}^w?I?Gb?7)3(aDpkG3~py*)MtQesV&33TSKM(a+y_WWR_Jpd)!j4T~V%iNqC&Qx{tnUe`TOjb*;uFx~@d8 z^bV}6Y+>ijsr%e#eCKvo`c_u@2ikhu%OgJbS|0~&#OE4#*L@t1cb=H~U{?2bIHE>s z`yN1F-CM7jdJ2VA>0OykzUM~nJ4Ws!f0$No|8nnv+-~LGgKWO>TXZdiu9vj@R++qSfafM1Q-% zKIVU#)>z|~r2PI=)BiwBPu!PblT z$5OxbyodVSBmHvUTWXR2eX#3q{0phiF&Z!Ty=MF&a65LcuE%V?kVZL>jG33WI5+C{ zF`9V$GuJ-k-fK0-4yM$XDy`0*R=S{DAJ z6aU_&!56~syLaZYlNhyYej0o?t-5W*oe5vKaA8u{@vVTnZ~EmI!o4SscMaINIR5ar zpm{HxudVMTpQyh9e%GF-&Nlygu&3w7Esd?=89cU10u3_FV3JOfB}* z_n7gA6WNx6b^B<|(Qh5OzrkuT&l;S+g7N(T*FizPoz_@u%Xh;0 zOV-bN@?EJG+;^NYi+I0S%X8;roo7(|4Kmhy?02wx65Ma!;NG+09Dg*&{U*!C`&|~? z`hJ@Qx1Qf;S?>2)aNmD^qh-0@Wb);V+V{d|Fy9rvkCrkA*ZV zt*?U}bMS9~9a9Uny$k;S8>4Q%?;*8_{}$MI$Lo538ym*5>+_vdznz$|;O}DQsYjjf zfgMNG`2lzs^F0?aes`!xogabCQ{S1^{xR74`l8lPz{6N}4}J<)kJ>*2+yC}-Pk#

tyHgSGaoA`5V|g z^_a)s!PeIoYx@tdwX*y3Pq=#Y|1WTMfBp?uiyBXX^Yi)-ntF`qX|Q?fQTG{ec72|O z=jZhtntIgvFW5ZwnAiWn*4G#N^E}x3Iv4$M|J21V(jJRB2Y)ZeV*aL%!D4*lQvE?< z{LS1CQ}eghtLiN57P!e1a8c3#-o2G*cf&5eYdMc{9$0VwY;Hy zR~-&k(|r8xnZ#WgOFIiqc?D)%tjlb0eqD}0Q;&5ig7fP#2TeWJ;7G7}>Y*J4R-cPa zVvLUC7%+c@<1qbx+uXr?^&Ja#oW?j`f4kJ;EF1?`o5WX(@yCPt<9D2T0N2^`6lY7n zbJ%JO*tN>u`;*}65p!}Hlf8%Y(9~m2r-0RFQ8V&Rg0o_+!?{=P`yw!Zh4V1|&d1+v_1OExVDD-0GvLNVe`kUH{tI)>ti1${zrsAs8s-@r zeV+~HFX`J@`?eqTXE{-Ew``;DW#D0A9db}6TgR8kOz86-3eS9zIJ0DZ?y&#UUt_Ih~TE9aVz|}M# z$LToMz%Rla$Ay^r-nolY-8(B^3%7=PjQ=!>{3z|LE9O^v$}%~*Y|X)~=_jQeV^n!c-OXFw5cAw32407WMMigG0z*o6--|zt=uvAzV8O#Pn*5BJ!tC2Z=#hO-%mS$xsNr>`X1y#Og&>{qGsI zY1p_7pPA#u9G{!x$K?2;9BlFMjura;|^dF8HqaOErHaPBgyl0L;GghDdxUOnZ zcMe$1_quhD#MsgV>occFs~$N=fwMVB!_9FW^qJ%Ss7H>!<3%jSdOXvB*0KoXr`;Q)_gQ|W24pru=Vss?rGqKsl_|@ zbhxqlTm#RfTJ(PgxQO}RqptOtn3{DW<}7d#i@ukDjZ=@l&jv3}E!J)+T;2Gnbq=_Q zMSo3TwPjeuEC&~{=x+tM2~&@lbHPO{Vpf8UQ{S1+#cvSDpfARGJ~+QdtI&+q=NfrW z)uOM};9`bfkn-sJLbx&Nk+UWja}nG)^%%>=;QUzDq8Y2tu{6`FMcqrl?qSrp6r4XV z>(JDVjl9di&MWrjaD7V32cnI`5S1}BEAjmosPA*9-Lo`b~NMkMP3KkaRx7g9b4R)jbLNc zV=SFuYw3&ry1=tii?|BhSbb6d2Jkd2>Td!Yr|!I3Y1JaW2b`T(FFfWI{Z!G6(-(Pt zVAn7BjbPU-`mKSDQI9(PU~B1%c@2Q`^BP1mR$tT~0%zy78E%}q^XjHmGk!enP1s~? zIrnob?JZa1E*ToL&xh-q|{@fU8GeuLQSZ**U!mt{!u` z6KtM(%;_$${prik>D6fZeWIVc!R~){Ecd|GV@|IDo2$Mvo#$)8&Q)L3dL7vH$&UH; zaP_G52C%v6u|97EXV>Rmcq^72(|vID=<7{j*D%}Ho8juQK5qe=rylF`RM^Hxg3VQrIlT*C4aQgJ}AFqMr|e^LzebH1(L%N5JN)?@agnqhRN%FKT@ZY_05=KMq%qTAu)$ Ts~)vJ3HB`Ldx25Q{TBZ}7A-Rk diff --git a/packages/ludic.render3d/shaders/spv/1b654972.vert.spv b/packages/ludic.render3d/shaders/spv/1b654972.vert.spv index 85cdfd799e7cdd44895aedc1a6b23038bb70a445..5e3e3f83644b3f9c6495f92fcd32d3d4cead4bcc 100644 GIT binary patch literal 2012 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 diff --git a/packages/ludic.render3d/shaders/spv/1fde9cd2.vert.spv b/packages/ludic.render3d/shaders/spv/1fde9cd2.vert.spv index bb0f0e82806270028ac48e3506f684f1a7c19aba..7a5330a2443071a5f376de327660c6ad79c71da9 100644 GIT binary patch literal 5128 zcmZ9O`Il716~`aU42z;h1$W7eV-(cjzKbx50SpO)#4RyCTc&}ArhA;8Zd6Uwo0v`G6)uf$H6YJ z8@vSef&E|-90Z5J5%4Ma4D|4CCiDME+?Vz8@4K9R)G`ab-X5uK$T!t<7h9xXPc~0K z(8nHrz>IZ8bz`MnAHTg(+t?i2c2m8%VQWTwUtz~3Yv$&x(AqB z)YZp7&#aPfujt+y7P+@L-%38(?E3c>XWhxS7ld}ty^}Y_ zx@Xf{^q^AG?MEkXcbJNN_NG$OC(%23tLo;>XU{tMSaY0N-Trm*&Fy+!eO7iDowFaV zj@?lm8?QcyTAYQvLtC>|8?QAR@Ushl&%NN;&+_ zd!UWQr)-|7_sL;B-Ya~%#jI|OSWzGAde`7rH@Z2KCCgT_rxUPw&z6IgdYIPYjVPJMcu zoN;?gamJM6l&8nZ8TUDHo}>4C060QFr>hpaz6*h8t=;d1x_Q+7cBnhl{f?A%@3y*U zrrqyLS@&+Mdw$xz+hu(+={?DQFzN1J|3gXd*3(nmRdd;w!_1CjyVDeBEppD`XN;Wd z1g9()YkivZ3z%Ko`>Fjxa56hE#{e0OQ$7W04s$;^75}-+>gGF*-(#5N)cg50m;I7o zfPP%T^TW6>>Bl2q0?tDB4d^SkFnv?i+qukq z&mb8a{_49DXT19Eq>Ac@{y#D6E3d!0?64`43LB{}tVF5%0`(UI%g$AaeRP&FNkJ8?)=#mxX*y z4l{e+a@vHoy}@jZcJrtoNu0IW`=h`&6Z%`pZu|#HHn;jG%rk&-=2Q0_%Z2_~(ywAK zp0T+d*6}5b-<-{Qiv`emQdZeT1xSf>n(B z7#J)6RO0@Vc;8aw`!90jbKM)MR!-k<*xfZC_G7({*w1Wa_wM(GKLf?x4}GAd`!04Q zeTZ6o|EB=I8Sd9T_$@dU$XkQ?)b&4|`3#`H--+1snTh`xpR~kf$eAIarvRt{&tI_47 z&TEjPPHj==waD6{&g+ontYaOu&t<+ISid8<8<6#NSciT~fxgJ z&(y&$TC%V2}TQ~MDbYtyL ztb2DMf4^tHgwwZc>&E^H-Pm%^?m>6ma?gH^uCKP}*}cf_#hT2mPxRwHWP6r_=vf8% zJ`g_lBipmG&jxh)=-CLeT)AgebouDnM&#(3w&>X=WNp#2&B$`r5$9Axb{~%5wjk^4 zu#UORTYXjBj{2GXo8cVsk08%W`lHM{!Q;Sv&S8E6>;#VBeuKOd%qVeBCeCwnpZ4o1V7&g? zC&2Tmmrohv^^T_hTF+Ju5IAg3UV*Y?EFB}mw%-_-H&|d`BVs3rigZq6MyaYTi z^;dwt^7Dw5`y(*lEkL_xv71@mJg+kU1?&gf_9b0;68S*l4>G@=tm1K1NJ!X#QVtl$(#EF<`2OU;2W@Rb^YT1 Gbl(En?wKe6 literal 4896 zcmZ9OX?Ijb5QZ-#6A)Jf1UE>CiVETexFST5MNy+D?v4W)U|^Vunato0xS)v2rlO)4 zMFe+o``~Zzga5|m9MAE2?%aZV(m9oW>#e1$ySi`EF}8PHl8i}CPsS&|CG9aW84HuZ zb*1z2RjXIcZ43|0oj3m)J;Qhmga_ z2yz5DhWvv3igfTZmiZ477m`kXPUS3Mo1l&qsP!!74b|e(^7>MfjA1GH(a@O1|uC3R~4Y;n<&o!IH#^y?`RvrLHyt`}`Tb1(GQ=Bz5 zi-SY;O>*t{LdsPu8#WFXTZ7iuk(>kP5YJ$4P*;H;&!$w|TGqLd+6(Dfm5Q6{m0C)r zG0$RSS#W21j-}#Yz3tzbo@uMNH6^rrzO7Gq>l zY?R%+`9@NGs6NcBZl7Akjm>IRy(>A2&e`{uht`ybhRe^Ore`7V&{l6$hAZ_N{J7NL zb5D6Txw`UPS--G({@9jOD}zfbjp0&lUHPQV9%y6nlQz%Pd*iSk?+-rhVpi4$tf;`c z-YNK%wRX4%e7PPj8nPXdp?)?=v;Ef_2=Teqxm@X(Q$Id?ajp*laCXRj*~O)PvSgB?|Bd6 z2z_Q-O?7S45zkuttV}nLy59)x4t2j5dEL9M?wM)#JCfJE+v=X5cJFpxKb+~FllGBJ zcmL`~GQC|-M|xMyWnYdmJ5Fy;Cpl}8a}Gaav0SX>JypLFac%FX`fOwpJ1|EN z8H^L32lCvyk*WCG3w85N5FEZb2AY;Q{eP_lQukO3h$9u4wSzqjNS z^&Dh&4eK}m2h94)>#y!RlGFYXv$0`UKa_FWKLP7&PUF>mXL8ZEPr(QG?pYZ5M@HE{ zLwC&Kow?5Eh@9sTIgfzN>0SMT+4bzpbdYb;^On=5SlgG(#%MQ>`mv0&HhX^@@y&$( zO=dU#M25|+{xkC!#5nV*`;O&8_Z_P*U@xArxgFN=H%x(9U*D(y!T))Peo~_?N`93_{ z_Z-B1T!v_iy=I!E)AdAGO=#n-J@F1a~u7Ux#(*cMGDgw(z?ZY^?V#xP@S2 zXe?M4XZQ-{XY^?nW?g6l|auNF=SYK`7w+3vi{R!?N zu(5Ix`!HBvZQ=I_*jW1$+@oM)^F4bEU0-d{v&X^i#hT2mPhZxvC&BjY2_$+}1j~od zQ($|R_bH*vTeCe|i^%1Bwl3qNX9MWbGi}kcGFV&mY&}@cI%2OI!0y8l+(xjzjySst zSYK`7w+U>l{RwU}*jTxUt%CK{7Jgg6#^!rgLpL_xvpTxI+9GxkY^?nW?rE^Ga~V}1qMj_9v_8?ukQ z+FnImTOaFuHsh>I`|F6@z3j@m-pDw4hiki*u{)Wy$DZBOTVOdyF!3~k64Sj^>q*K_g&;b$`w-mJ+Qv= zXArB;`-u7cc4+r3b}`GF=OFXP$RR}AhnX%u4E{9ZN0>j)@DXPF6nF3|uy^n{66gCh zSU!Bd1?%$-5Ov{4>nF-AA9@*Vvpla{0P=h-rOgce?pESz5(l2*Y7`eek1Zf Dr$czX diff --git a/packages/ludic.render3d/shaders/spv/254e7887.vert.spv b/packages/ludic.render3d/shaders/spv/254e7887.vert.spv index a5724615593dc524485420768983d014aa02aa30..6ff8f47370b8c6984b0fcbcec85d71e2372e4c07 100644 GIT binary patch literal 9972 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 diff --git a/packages/ludic.render3d/shaders/spv/2e2908c8.vert.spv b/packages/ludic.render3d/shaders/spv/2e2908c8.vert.spv index 665a4db794a761d76ff3de2608ca787a87cfc83f..5fb95e1f9f27e7009ec2e3262a44791a0388257c 100644 GIT binary patch literal 7972 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 diff --git a/packages/ludic.render3d/shaders/spv/2ee6d2e3.vert.spv b/packages/ludic.render3d/shaders/spv/2ee6d2e3.vert.spv index 25f1e1077ce58cc27955ab553070516a5430e3ba..514060879d9a20bacadc528408631e3b506e914f 100644 GIT binary patch literal 1596 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�==CPL{9IP)yl(;5>Asn--+rFIzLmy7=Iphth}>5p08MRyL**jcv&;vJ1H0OJJIFtKkul1XWxt52fTB8K-Alx^LO%k-i6&j{#MQnqRSru-W_`!1orS<=yz7%i+t4n z09`KnA3>kq|3f(W`+2XA(9M&#=3%5<)I5gne(5`k)Ydl>`7!Xlgna_tJ7s_G(#2jCs%SYaq=;q2tzjNsRKBOS>O6cc69?wnBfAtdGb;FBKq{%t8ns> zH->Jme7x%#x^G&aGUl(Ny9WK9oxi1WaaIj1*b8%y}7mJs1G7 zzANbR#!n)(jlYS!1>BDt!1x8oZ-IQo+(tL%I*6F>(B&Uf$DBLBJb7b0x9@>#I8Kaj zQ<5BkJn=8Q9+#XTFbo0ImUNcHP>>{l_ca G2L1=6y(wn^ diff --git a/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv b/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv index 45214a4e56a8643e8f51eeb2194e7eca6cf195d5..9b3f16fa25e66632bbea7bca4c09cb70e3d083bb 100644 GIT binary patch literal 11024 zcmZXZ34oS$oyT7pKopb|FVYk|3dKytGek$!JR(8KBU4{SW`I}cpt(?!98$`xyeqW} z%T6;h+chw2Gy+XbJ9fABba&hPKH84mYCoUneZIr9&pyo0|M&a-9sm28cV0Ut9ky$u zu}fomV_M@!yEKYtuf`;lM#J`a+Ubp{1wVJm@+HR%4R;@N!imQkxM!oortr;d%qs9? z{@d5p>X&TBwqo0`9oS3Qg%o}SdlY*NdmMWL+l>7H`ytlBze(nRr!*$>Z)eRZjB_S@ zO;2m}n&IVr0|Ucr<_#Tx+``dS$1g;mLhc^4!#&p*cu(-isQOgq(`fXLbhlPESNAp@ z+#oKCX=~5HD!si^VLSF;{?x%J{3r zW&AbZfl_zD21@-&V=(9L8n&8)0~yoP@RfzHqwy^5+5%55*14;>b|87Kd251qG+uz) zhc(@cu4eyWU&-B<(Mlg~=$h5T#n>l<*RC;dT4O4hl{>p4i+cxF zUe{oCSz-J>BhArP&$^wO@dp zR)6=-{3(UDvTLxrNl!cVsXKK>y;J9qQ)Bhuz=&0L>eC8+c&Irr*jml8&G>eUzNV|! zGZ20ELhl>s?&)pXf%`kHoVROxFnDNP*A2MvO)k#+Xmia-Z*M#HGW;vqK=W3B2YY%8 z+$|n#=M00}8SS`@a3^WbU4?HHJf*P-%vudK+m``la^oSiwOxZ<*<0`0Xmee0F!X!x zMk{;o9UN_XL)v|NAG<2tyE)n%>gi$CyhBgIIRndj1~2Uy^pf$oHtIh528LS0tpV3^ z*Fx7-=&krv z=l6FzqAAq&J%WCIf4gSsX*AAd4ZKqaW1cJd){@f{+`FUS{`GrbniX zHvQfO(q;?}5Cd@OKpF+F0kFvp*f~R)BKdR)OZTWm`79+OCTq>9+-Vfyd%)w?ib}P<;-2SUi z_<_W`Pww9w`g4DL)b@wFrsi8)zkM64K9~8=pw(}lzI}<=mv#TC4efdo#cMj{p&cS}Ir+*A{ zypHcyT7B+8`r8QhG5_nd#u~S<8t;Mj-~&II*z>*M^JYHZ8UKFp7k4aK6n-H5 z$Sd!h;B$-o*%SGP!xt==HIYBB$lr0g`Hp8k+&QP-$wmAVh2L>4hCleg>)pz!ZlbTqw< zQ(!&Z^XT|&GoRbxo~!VC;of7%dmq@n$aoyz{b=4>$8Wm{?vrsn48QZ)pPgp@7s1YL z95Y_-dsQv`(F*s>`Cip;{#U^K6#W}7_dTm7cl~_N8h;S{cfqdh7MHZTa`%{1oTIdUD^vYT>?v0m*J^rzo#==HDiCxY)-+Pk2U=p%g1;7$;5d!{JTo*JAO~hdHR{g zHBs~LD9>KFe@j*Qp*4O)jnAv`Q)>Kz8uxFkYJLCCs`9IA{F)l?FS+aL9oYwSj@@wU z>|biDS(5|6vrEl=8z9De^y*S~EuFvIdioB+T&M8YfQ@mF^!s_j81-ePHV5pUX}6Tx zT(GfoF#B;`)l&B`u-XiE&bo(VY-xe@nd924C+D@`YR>E6=C}^}%yECzlXDc_>181=+lSc_Q-H%>icSq83;!QSbtMK`#<7CmUj=}X=!u;UD04R&m~ zGi$)csAnuKu(kB1ziYvVl$N;b;Ku4p{a)}aEcN@q#;H56YiQLHKLD=IYb`wUN7NOTWWlW7Jb;1Z*vRnb#<|KCg9X#_CJ`>%rA|-2gXE-FfxXsu@3x z_C{`dKX4XVDr>3=QrK0wC};}Pv0bL zBX$w}+Q)k_{XXgEHn3-)I+pjr)xGED-Hw^7o;kfAT%FSg;Lf{R=Yw$d^mPZgKBqg; z)HA2Mz~-rEPIrUtPhWjb_n_(bNk8|3-T&%X?t`mmP9FlBtG=O}=ZC@0RbOg-1nl~Z zVcCcK!Ro2?0N7mhtj~ks>iT>X?%bl0x0tj{OG=Ba0WHi7L= zUwwTZLfeG-q@PcL>wErbH1*8sVX(RCnbT*$)j53@Uf=W2p{b{@&zCV{w3*Wv!0MUP z7s2MKXHJiR?N48QPG3UP?~{HW1=sid%V_GE(_>(B)i;!T{uQuu)t6e2gRM1&Wz1g% ztEbizU~|<|>uX@og1+A{YI#13JBPh6pAO8=+h!m3OC;Gva9(UD||ZsyK4NQlDno`@IQrZ#;WK48>Q|$ z)A`F2|4p#*V_5d!TVQqLT_3r=aoX=-Te0Ln2i}Hl$CCd%Sl!Qj^M^ACt&OR7)#6_g4I*!kHF@sZz%7W9{y)w`@fle zm`eK!rj{Ci4zADZFVNI8p1%aYf~lwOPr=po`75|}s`L75xO(dR4cI*O%d=bypV{rMNTb*l6DSGaoW z{2SOj^~~en!PeK8wfzsUwZ^dY_n%<(@SlOJ`}1FLwbb}IxIV96ps8m(zXY47p1QvR zSJ&si;q`g_51M-F{2FYYdgk>Tu=Vw2e|`&gzRpFz`(thOjC&W}FP?`nEMuC4rapr= zm1nU-PCF0Nw~^Lbiu$azJMDDL?>GHUGqq-vdd9vdTx}1`ye-t43EoUw-OE>@sV8r5 zu$te0X3n#~*3*|-`+&Dmt9rinMN?0${lRK}cbZxUfUT!5wPu5@RUOx>(bQAxAh4R> zyQbD_z}C~}I!&fk%bFYlR`dG_*LMz>pW-utzSKSxtZy!s+{3`;CgupR+TmFGe=S)3 zNNT2!*TMNI`p}>JBfHz|B=R&%J#E*uCA3 zCGS`?_2eA~Hdo#C@^`FS;*STbg)aa*ndF}UHby-$CxWXnC&7(VPu?kD^^-BjyPlL& z!QO}J`FSInde&zlSk3(8od!;xbC4UC@hk#Y=Wsf_I=(ZE#nhA2S&KOnZk&4Na28m7 zF_yfu!IQDXya}v!4wmz9E|{O<`#AlHJr8V6{h8bO;QH^33((ZFCT|9-nV-BR;N-a` za^u7o(t19P^?WVEJYP$(%;Ta`-$KlC@LMspi?N?m<5F6mU-3Ir-zAuup9#gOeL1*Z z`)z3I#&}Mz0DIS~=k)Dp>RFpB!RDz)yBe&16_)pIv+(oTw``rSpA*%c+c^DnfnA&M zYv9KC-HHB{U}MzHUqP#u_#Uv@Qr^+K6Tb?qruj_5ve&E8low;hWnI>Q>+8}&Q_s3w z3$Cxrb!h5YgI=(C>e2ea>U~&#kE{jrQ~Vy$KY;n&!c??(fE}kX&bOOZEoWg6tTuyh z0*oI5^HY4cs?Xm^o~N8G{m#KVJpy*Es&{%6uAZ26Wy~1y>GOIt^~~u8u-YNSB=1JJ zwX44)-U(OFdAJE|f9C7kQ10=&!1~r>?$tPTZwB*Id=IJL`3%#lXYa?r{vHqC05>N6 zy&LRZkGW>nz6Fh+;(KLlm}hMIz7@<*(YLYoZ9nS2PeJ1a1xWjQ;_!dG})( z|AS!loU4z5FUHjKchASb>RP^k`#9J>^d;^SVCSv5rjF~AXvXSuP4A*r%eX%UR@3(o zt^8EZ-&Arx4W3E6iB_L;Q~wND-@}-5^Im-x?B0)IncL^k)E$d?p9h<(p1d!B-DmS0 zgWNdJSoX=*n&ZTL32eNvkI>5F`!d)ws_#*-JoEf2_;F0%W3+O|;QRh-;QD9I-$7G1 z{s~&S@lVly19Km@VAh{P`!uGWm~VoO*^l~(`4(LL9_pAgj+v*PIXnY)e))d!S+JT< zv~QQ1aa?cc8LvUP5EX*;|D9M)*2IkdSXf{j=L9%Sqw6e6) zvenGYHkZmK(o)0jt-E$t@4el9U%D;#W_`csJ<=>p25~o_+IQj?0)P4>_O}y>`Ck?tc(9<61x{XyD^LZrfbe-oD1On zeeEs%V`~S8hsXMl9bItHsMZxJS$)8M6*NTE?#zm+>3G!=*kTF7>Y&gE>dns@)nH z&X~Rd-&pv%8k4kJ3p}e>&)(M7;pDlt?J3^Xcna>~Thle~Z4HeKmfZE9sPyq1ynoAB zG4`3P_11p#<~C-5w+yr{=-b>oJ}`FKPD0({%pqLfhCovZ+N+)B2og zol#Hg9A;{485th8%CtVW(8oqw!z1l29M6nz-{}3l1D=8C&nxu7;Z1!5Ejw_3=alny zZI1wtZtHzBE?1;D*AuP&@c}m2*vs&5WCO)lf=BuW3VfA#q?0oO?qqc0cEg>dIX4%+ z3GnR3U0~K~wADHED6<-OqiyXS>CN7HrzTq4ii4rw`!!M7d+*vr%bU>Y+k4kr;oiZC z)@WZJt2Uce_!^uu(9<_^dEbbaiO023_t7^z+8%2UyO#SDx~@WR4~?yDU&qdx)A4x@ z@SQ)<-g-fMbgXx1W8aj|v!IW~oAS8^z7u>LkM9OzI)k}rXpN&7=obxjYL=cx z<3iTJJGB_|T*-YG$$jLH)5`5%?tPKlt=#)Eo!>Qeo>$|`9q@dvW+dUBzXNL8Qn*j@ ztY6KO*YniO>&BAj8dme<^*lB6c48Tq^HZCwXs(HxYmhi=t36rKyk}~AE1G?({cc6` zeyRO&Me}Z{JzLSdS86}STx0Ll60lGBQ5{-ve_yx_i)r|)25{H@=_?Bj%z9|ZQX<{`AkSX00GM`AqZgdbDTol|^y!6&=p zKcnNH;;RbY-EIHAfSU#H)R$jZa_6ue>>TXZdir-@j@R+sK&#I^NPoM*KIVU&)>z|K zl-&1&f?&TIzczjmdbQ09!BdPnUk{c`x<3 zNBZTyx73pVhhW$LF#KHey>2-d>h?LCct(Vci!=nsXbo+KX$=W-SHm;e`fERmEnuv$F09*iodYPUo@3}6ny#e1E=zj zF7o%T%6N{0SNHg|BK|9d-*I)r@4REt6hFW4FF(imz6$JIjB~zn-%D9z=X){Sb;@{q z;5^+2u_~8>qhA4jX7Bu|abE*xUQ_)J7XG~}Poy``%y#&03zco=a}(Ti6@Dw+d+c~` z1G^U)kK?-?&3o(kZGDgWWL)>aZ`t#+v(5h;*tyxi@p9j*YT@@)xM$Ays($mo2FZUZ$elD~0J@*La zyU+LQO6KhTJc_BWVnv+4Jn`QI8}Gg*{##&m<6R%QKF`{Bu{~JwzX$eR==(4E-v_JT z%$Ur15;ITTnv=9@srdu&)0jTjTb^1!1Uu&N-vK+O9%_4c{Jt?p-F)AxYKi|5*m%e5 zdjA-k#H#D_d!>FOF>}DbkC~^QI)4Cm9I5k1;7QE)c4GXlQcs2;ggRATFH}FZU zI+8$@{2J_hos0h5 zKlP0JH{eOEI(J{T>hpQ?%%PnD=cjQjCfH45t>>h0Yt5zI7xNp$?~csxd8MAQ&xfnc z!_0e_8vB7CqOI=b{%GpSI{>WaH%jKb5Nthtsr7uY@2l$hIuK1gwGIZW`F)dGhk&i8 zFSQN@TdO**!_d@I>jhvnzl~DsaIp3CxlS`_)v_i>g4O1;x~}hHFh9lL%=D#p6Rgkg ztmG~Mo12)WV6~&L^#3BT`Z3f@A1{XUQ}m%f`Nx3u`K^}xW5M>V&$V!GkH_3wzu_{L z6G}a`PK2AQZk~Jl60mz){rzzgntJkH3N}~W_40SDTKYK|tQLL>*t3`XWpHEE6SKS) zb1K|8_2iunRzD4MyxXaH26&RTdVbDCQ_uRG1y(aZc`pMe&pF7A%Xn6Rt8+LTUY)~A zxH0Oc)6Z*MYt3)pPoKH1({_8^GqNM_Uh8zXHp9 z_l;oRk^1tk^gB`Axjlxj1)ii0-vBpeH{;RY3pPgG^}3Q)E%6({YM1bi_B&}4SWWZs zJ2`vZho*cUW?a@~Gq}DkThP?AF8$#8y0p>Mvj$g#%~Ovy09L;S%kPmPFh9lb5&eVM zP0V)=+A!F08smJgqE*XT*a}vg&%dyYe-oG={>{PPU;(bP=P74PzjN?TkAhvR>YW~g zt0!i>jM+ha`kX*h&z!b_)s7@4dDp_NUA-G`hO6g1TnDy4^Y!g2_xLSfecLhj%6)$; zn4iYWG5yYGgjPL!zXR+yLiqJ?W76MFuy;M?npt}n8b6JbFl(4+Z2Gc8Yf@OkBw(DYw!*PYZzyLyJ^*2U*8Mw#5|)n zVfNwPzpK>qUU)ZL&3*B`@LsTw?*)DD!PI;&h%?q(z@4#n?$G<-YMPJZbR4(A-;X(t zTQT#!a~~*m@2vcTaBHY%{2v0FcRQBxe;BNub9D!}2UE|#d+r3QYu*v-e*|nF`V#k1 zu=CbjQ{z5{W~@Hf^k!PMjQitYHGOx}%FkkDUE5E97tr2CtIxTqe-fHdj4)p9QwBN{>$L{H|JN-)Qx|TR&M+ww2xx$*;#|<~oHR4mQU3fc_&eW7KoM7lU)Z^PYJjnz8!q$8}Xp z-6dc(-|N;r3S&zPtk0Y#t$K1^1g_@17;cX1pwArlM?E?Id$5URtjB>pZ(7EBJXqb> zYQybRpL()S9maq8*&Z15SSW$jkN)s0WBbHGh3 z{dI%YR$+-b7u>|s-+AC}Og%B@gPT}lE&v;+zN?&z-yn`bU&i?gaD9y~L^D>OYvesu zOJ5g(n-%`blBe%i!HrQ*&YD`x#c<=)GnQ9_>tneD%~*YoWi_o@>Rt+V4^!hc;QD!4 zi>7XD@?HyeUfG+=z{aU3=5nz8CFXTt4RidRn!__kz9CS&OT{^|jcDW}Lp{Z2~*a@IJ6(%bnQ_Hby;T z*#fqfzVz1*KC-mLwc*CC3#v!1Z~JqZz9&^(Vm9d2NFmr|!H4Xw{6LOM5N0A9gPH zb35%@unpLCm@#u`--@Xx=6di3YzLN@onZBhcNf^ao!GkaJK}9%`_nfQ+l}SB<3_N4 zpY-!~uxFq;mUqC_z2}bYrULVQPn$Wt6I`9syWq~dTIbzx_4M@~@CK|pr}x6uGpC!u z=BZ~+w}9>#x5~-Ib|UX8WDH;0E1*TXW?aaTOs>Sk3Rv?VasLx9Bt$ z7N5Zwa#c@+Gwd$37bJl%pm+>vht-_UEik z5IIKj85DjffkRALKP5*+aQv<|vyksjni z`#nw{9#8XPC;gJZGaGfw_AW~g->2PTH{VOnY}^92UY4ENsGGi7k>b<8I9qw?8!C6M zsav2YdVC~7r?sT0#?g}R+_dwmV+G7a|KKeZgbxujY zuN^+vbeJQHfeoSGhuX=>J5dMvT)?dEdFd>xi@SI3bRGYvI^j=jtK)^v*5}J$rxvp> z1K_+%?p0?$Rh3^A(8eKq1c{FYLZR;6MI2Iz0^qFHSx%`D8XjDS2`Py{Ki|> z8QWK7!EZ%^FZj2By$(3^oEGc}F}oOxr$%y&ZP|9!7Z2V?Hc_lC~k=G#&pX7HwjxY+51y1w~Gxu|M=VN|2 z$WJzVd-+L~W4+^@qhq#Gcc;>I^216h-{K?hqDE)GUkr-<9_(<*+i%Giy}@?zHCLBn z_DAe(w>WrL^as1WPx)EQ+ZsFScF$t=?fqO$>U&Q#o4qPGb{@h8xAjh=-~rJ0F7v>( zK^=Sc{P$E!{i}B+u6hq&>YOu2o&6=9wp;^vmVN23f=Ny>XORqb+A~-!_6*FT=f_a` z#xnd7b~!PPf3f7NK8#!2p5$Lf-}}m~M*Udyr#Nvu@}4;XLReo{r+>BdPk*JnY5dg3 zb!>aK56{tej&dn~4x6>+Ju(byItTk+WY2(0z5Z=51m^IU*wxF;WBCplkTWK{?_GA! zG;SaI%aKcc-@|vMzE(=_bj|!n*yd*-&C55kkLSF<_qAu2x<4>YcD25R{}pHO3g4Mu z2G08@Drb8oa?bn*-P`|U>#x5~-Ib|UX8WDH;0E1*TXW?aaTOs>Sk3Rv?VasLx9Bt$ z7N5Zwa#c@+Gwd$37bJl%pm+>vht-_UEik z5IIKj85DjffkRALKP5*+aQv<|vyksjni z`#nw{9#8XPC;gJZGaGfw_AW~g->2PTH{VOnY}^92UY4ENsGGi7k>b<8I9qw?8!C6M zsav2YdVC~7r?sT0#?g}R+_dwmV+G7a|KKeZgbxujY zuN^+vbeJQHfeoSGhuX=>J5dMvT)?dEdFd>xi@SI3bRGYvI^j=jtK)^v*5}J$rxvp> z1K_+%?p0?$Rh3^A(8eKq1c{FYLZR;6MI2Iz0^qFHSx%`D8XjDS2`Py{Ki|> z8QWK7!EZ%^FZj2By$(3^oEGc}F}oOxr$%y&ZP|9!7Z2V?Hc_lC~k=G#&pX7HwjxY+51y1w~Gxu|M=VN|2 z$WJzVd-+L~W4+^@qhq#Gcc;>I^216h-{K?hqDE)GUkr-<9_(<*+i%Giy}@?zHCLBn z_DAe(w>WrL^as1WPx)EQ+ZsFScF$t=?fqO$>U&Q#o4qPGb{@h8xAjh=-~rJ0F7v>( zK^=Sc{P$E!{i}B+u6hq&>YOu2o&6=9wp;^vmVN23f=Ny>XORqb+A~-!_6*FT=f_a` z#xnd7b~!PPf3f7NK8#!2p5$Lf-}}m~M*Udyr#Nvu@}4;XLReo{r+>BdPk*JnY5dg3 zb!>aK56{tej&dn~4x6>+Ju(byItTk+WY2(0z5Z=51m^IU*wxF;WBCplkTWK{?_GA! zG;SaI%aKcc-@|vMzE(=_bj|!n*yd*-&C55kkLSF<_qAu2x<4>YcD25R{}pHO3g4Mu z2G08@Drb8oa?bn*-P`|UCY-B=P$zVFRD@baE}xc~D%<=%7dy>E8MZe7RpDipdD`V@K> zp6F6Yo`Hp~FolBSM8-aao{2tp;nIZ@THER-oG|$~9s3u$IV83Lg+U4K&c98yrDm0< zknPA0WEZjj^kPXO2WDD{b@;K6s|GMJ46WpWFo&Wac?7=z*pf}W));6>) zZ7P@B8pgIxJbrq|nu*ildl1`?v912{1osEGcgXjooc2vq`mX|)Q{IM^ zQ~pVP5No%GrD97t*7P*`>crNq@GRrH1b0vRTw7dMjyQW>+N1X_dY+|o3=vAp`y0-foR*l{Ve7duMz>-TbO0o=Nl@+ERT6F>K+z1Zjm6gyZz#Csar zi*2Q*`n{Zc*Iry-YOdQG-y`8x*S6FZnQ1TIb1&bJsyx9w|IGY?3=ugwsLE!tyH$py%Jti!k3!cmX@w$*Nv&#JR{gnZ7i*uQ)+FiZC+i! z$L2ZFM)UUA?1Aq9AJ^l%0H5k&<~P^5q8{Y-{Qy6|xtcSz6bf_GyE2^k?uhz!Ms*)` z?}WPZ&*fk5gzKD#P3+^@oX5YRd-nFrabwVZBF<%Jmsl5$D|5IQ4v-oN*N- z*5&%;Iy0O#%UN^ynOpAp4Cft_+nM2aJhi&j;_b1NCl+ zy<2jw^|cRi_WPjwxNpJjpXgN|Qt%mBttsNnA!pv;#Bx!qXI%X##I^j#Q8JK8J3;gYkcX(Y3hV;rwRfdr2>zwM|)7T^T>m|fHr~k{T&3M^)EwrU$v_j(Y;63vl47CV!hhy;Ji21=jeOP zC-SdD-}>wuCmY`Zw)Rd$e|6t$a-sWP3*CPDUQ;*zYA`>0`mOGJPA>ZEdrtph_+JaQ z_Z4I~$ak7&Oir6(-p!20Xg80#pV4yBhwIV#Dd>L#z&?03)$c~v*WBulqVtpV&wT2> z1LZ>Z9jJaHr_o&95g+rs1>+f=2CMB}90xMaV&$Hp`w-XX`^fV-13zoJKedJ50~tT> zTKGK(uWb{v821p^Sotj}_b^!AcUt6oL^~4m&SbT6`o2pwQxWSir+>Tn_->topJ$_A zihalSN37G|IqZp?f1h~vLLZvbN9XjzbNbkvJ~gK=$mwV2bpL+I&c7n3ugdAoscv7r zBL^VXSch(&gHmoSJ@NBmNXps2GCtm;LsH&eTEDvav<*Y-Q|O0+^>L51`+2U9{Nj`w z33ktv>r!qMSl^L|^VnCp$U6os*O#3$?_mgAnqY0l*n9biIRc!GITGC%`=HGj_eVZr zjslw});b>SXQUEqJsK>pZ^Rt~&c;nZ&&M4LC$Dex=QyzWv_&rd^!&eE6VdazCc(+; z8@WyZn@?M;|3vWQRBlXrJq2A~ZT7%3DHrpf1h$sjQ~&8;IrD_i$zXkA?ipbHFD~&`yTP!%tc&-wpiyp zaK1>7FO88xhuCKPp-v}OrME)kQe)86}icv27%iwHX z>(HaFnCCJ${j^0~3)udJ-U_y7F>f1KANk1B4mOvzsH+2>0?eM(esF%zKL95mHGL3ltbEk;A#k>)52NSz{3CGkG1o^^p9*8t z^f9n})bw$%aq>~qC&139Enm|o;k5h2Jf8yR_x#gv@=?=gz{bjNO85M;U~APDxjqLr zR|SbRe;zC!xxN54Rz7ll5$sve_8zNNkKe_uVIbnu4e@vG{Tclo+jqi~NUx0kbVh#$ z{A^BtJ*SWAvNv9TzZ1^p^LydYwfo(0R`>b{wdfv`N;h>m9IT|Vmg zGuSx!$nzJl>xevm1?PMAH#qso^LMau@|)QIo{axM%&#qS{S$1i3KH|Z0hSN_Uts6o zNYBjkCL$L(-U8?AdK*qY*7FY7IQhu?Z*aCh|3S~!^)8%zv6y1~iE{N2IE$w!_Z;OzeNL^sc?Nci-ElaD;T!N$o) z9s7XIuPu7JFW6j_Os+m~@{zkQIJ-an(B&dWe{jC80dVrMp8dea$w%IS;B0^PN6*(a z2u?oo8~`>>KI%FUY<_LAKZC*6Yc1O2{>h8|4s#qeTZ8YeL(qK(3}KA*4F$_@!^iJ2 zha+;skT=OOlF{cK&aJi)h@78K;>bN3oXW&fi(-XuW>M$y-||^Na_37eYT8T_69B(|!zCA9>^bOq2`%W5IHZ_+;A` z|Kq@NiceR>?_#{q$HPg_M)ZrmOa$lqG6_yT`f>s|-D1?kHg zUB^jaev-dGwNFF*J4f4eu^%*Ap?*lrcNX}}jMy`CFM{JI`HssR#_1b# zF9!3I%&o6;JCFR^oT!nE-Yv(N`)qKW zAJ^$RR-)G;uA|6kymxL@%ExyvtI^FNAM39N8&}5|>t6$wk8`ya>^n_9e)nhq%Pa9+ zKnd&|+QRP=uyrf;)OB47r>{19x|~ri*4+%2)7HeOK8^F&lh`tN0AnMgHfxi=46JP( zVr|~57O;C?L87)+ICBW3f+;=Iq4ha>QU!4;0=hjs~FW?gYWwa_$kKhz1;*Sum46yb^UK(yb*C9uV*y>3*ehlK74LY zeFkF-pIhMM?;?*ew}Oq6j~Z?RTVH(FaXVPfC%COCCmq}!Dd#y|%sbXIeJ7mp`fK-{ ecqemfy9?d<^>NL2Gv0%2L0q$StLqp4FXn#%z@kS0 literal 9740 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 diff --git a/packages/ludic.render3d/shaders/spv/4a8e9f28.vert.spv b/packages/ludic.render3d/shaders/spv/4a8e9f28.vert.spv index 25f1e1077ce58cc27955ab553070516a5430e3ba..514060879d9a20bacadc528408631e3b506e914f 100644 GIT binary patch literal 1596 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 diff --git a/packages/ludic.render3d/shaders/spv/638623c2.vert.spv b/packages/ludic.render3d/shaders/spv/638623c2.vert.spv index 25f1e1077ce58cc27955ab553070516a5430e3ba..514060879d9a20bacadc528408631e3b506e914f 100644 GIT binary patch literal 1596 zcmYk6+fEcg5Qf`bW>#x5~-Ib|UX8WDH;0E1*TXW?aaTOs>Sk3Rv?VasLx9Bt$ z7N5Zwa#c@+Gwd$37bJl%pm+>vht-_UEik z5IIKj85DjffkRALKP5*+aQv<|vyksjni z`#nw{9#8XPC;gJZGaGfw_AW~g->2PTH{VOnY}^92UY4ENsGGi7k>b<8I9qw?8!C6M zsav2YdVC~7r?sT0#?g}R+_dwmV+G7a|KKeZgbxujY zuN^+vbeJQHfeoSGhuX=>J5dMvT)?dEdFd>xi@SI3bRGYvI^j=jtK)^v*5}J$rxvp> z1K_+%?p0?$Rh3^A(8eKq1c{FYLZR;6MI2Iz0^qFHSx%`D8XjDS2`Py{Ki|> z8QWK7!EZ%^FZj2By$(3^oEGc}F}oOxr$%y&ZP|9!7Z2V?Hc_lC~k=G#&pX7HwjxY+51y1w~Gxu|M=VN|2 z$WJzVd-+L~W4+^@qhq#Gcc;>I^216h-{K?hqDE)GUkr-<9_(<*+i%Giy}@?zHCLBn z_DAe(w>WrL^as1WPx)EQ+ZsFScF$t=?fqO$>U&Q#o4qPGb{@h8xAjh=-~rJ0F7v>( zK^=Sc{P$E!{i}B+u6hq&>YOu2o&6=9wp;^vmVN23f=Ny>XORqb+A~-!_6*FT=f_a` z#xnd7b~!PPf3f7NK8#!2p5$Lf-}}m~M*Udyr#Nvu@}4;XLReo{r+>BdPk*JnY5dg3 zb!>aK56{tej&dn~4x6>+Ju(byItTk+WY2(0z5Z=51m^IU*wxF;WBCplkTWK{?_GA! zG;SaI%aKcc-@|vMzE(=_bj|!n*yd*-&C55kkLSF<_qAu2x<4>YcD25R{}pHO3g4Mu z2G08@Drb8oa?bn*-P`|U>#x5~-Ib|UX8WDH;0E1*TXW?aaTOs>Sk3Rv?VasLx9Bt$ z7N5Zwa#c@+Gwd$37bJl%pm+>vht-_UEik z5IIKj85DjffkRALKP5*+aQv<|vyksjni z`#nw{9#8XPC;gJZGaGfw_AW~g->2PTH{VOnY}^92UY4ENsGGi7k>b<8I9qw?8!C6M zsav2YdVC~7r?sT0#?g}R+_dwmV+G7a|KKeZgbxujY zuN^+vbeJQHfeoSGhuX=>J5dMvT)?dEdFd>xi@SI3bRGYvI^j=jtK)^v*5}J$rxvp> z1K_+%?p0?$Rh3^A(8eKq1c{FYLZR;6MI2Iz0^qFHSx%`D8XjDS2`Py{Ki|> z8QWK7!EZ%^FZj2By$(3^oEGc}F}oOxr$%y&ZP|9!7Z2V?Hc_lC~k=G#&pX7HwjxY+51y1w~Gxu|M=VN|2 z$WJzVd-+L~W4+^@qhq#Gcc;>I^216h-{K?hqDE)GUkr-<9_(<*+i%Giy}@?zHCLBn z_DAe(w>WrL^as1WPx)EQ+ZsFScF$t=?fqO$>U&Q#o4qPGb{@h8xAjh=-~rJ0F7v>( zK^=Sc{P$E!{i}B+u6hq&>YOu2o&6=9wp;^vmVN23f=Ny>XORqb+A~-!_6*FT=f_a` z#xnd7b~!PPf3f7NK8#!2p5$Lf-}}m~M*Udyr#Nvu@}4;XLReo{r+>BdPk*JnY5dg3 zb!>aK56{tej&dn~4x6>+Ju(byItTk+WY2(0z5Z=51m^IU*wxF;WBCplkTWK{?_GA! zG;SaI%aKcc-@|vMzE(=_bj|!n*yd*-&C55kkLSF<_qAu2x<4>YcD25R{}pHO3g4Mu z2G08@Drb8oa?bn*-P`|U>#x5~-Ib|UX8WDH;0E1*TXW?aaTOs>Sk3Rv?VasLx9Bt$ z7N5Zwa#c@+Gwd$37bJl%pm+>vht-_UEik z5IIKj85DjffkRALKP5*+aQv<|vyksjni z`#nw{9#8XPC;gJZGaGfw_AW~g->2PTH{VOnY}^92UY4ENsGGi7k>b<8I9qw?8!C6M zsav2YdVC~7r?sT0#?g}R+_dwmV+G7a|KKeZgbxujY zuN^+vbeJQHfeoSGhuX=>J5dMvT)?dEdFd>xi@SI3bRGYvI^j=jtK)^v*5}J$rxvp> z1K_+%?p0?$Rh3^A(8eKq1c{FYLZR;6MI2Iz0^qFHSx%`D8XjDS2`Py{Ki|> z8QWK7!EZ%^FZj2By$(3^oEGc}F}oOxr$%y&ZP|9!7Z2V?Hc_lC~k=G#&pX7HwjxY+51y1w~Gxu|M=VN|2 z$WJzVd-+L~W4+^@qhq#Gcc;>I^216h-{K?hqDE)GUkr-<9_(<*+i%Giy}@?zHCLBn z_DAe(w>WrL^as1WPx)EQ+ZsFScF$t=?fqO$>U&Q#o4qPGb{@h8xAjh=-~rJ0F7v>( zK^=Sc{P$E!{i}B+u6hq&>YOu2o&6=9wp;^vmVN23f=Ny>XORqb+A~-!_6*FT=f_a` z#xnd7b~!PPf3f7NK8#!2p5$Lf-}}m~M*Udyr#Nvu@}4;XLReo{r+>BdPk*JnY5dg3 zb!>aK56{tej&dn~4x6>+Ju(byItTk+WY2(0z5Z=51m^IU*wxF;WBCplkTWK{?_GA! zG;SaI%aKcc-@|vMzE(=_bj|!n*yd*-&C55kkLSF<_qAu2x<4>YcD25R{}pHO3g4Mu z2G08@Drb8oa?bn*-P`|U20 zGD|DlwaKK+iy~@5sg-G2X)-xeGc{Y&GE>d(ckcOL&Ya`-@cy6wv%JsqzVA8TcaNh- z&DgQg*r73@F~0HQ4vpg4tuYFw(Qur_IH57F(C05)yzsEzzV^e8JnC>AcWsPzC~T7& zlM6hCe^<7(x>W8%HX)mlZOBW=5)$8!Jb-LO9zq^Q9!Fk4eua$Yzft&Z0gr8r;lJ%U z$5Q7c^c5Ygb?i#k5J>9A4e)Oe=4ab5(cZT=Uk5 zKECmNbh~8PqY&wB^^8}-p_(ewd!FAup z*w*aoSy}3y-GRzJ?9IZgSl(B}?F(K-LgNkx_pWZc0{24qybm;2^mld+&(T6($_6@L z54fkJv%mx5p5d75z{3&4em9}JP{!O|*apC38+U_Q@80I{%>Xl|aSz<8ww|`s?Y%b8 zTwNRt?cR3-mA^ue_JG z?%q~ktK0q9vEVfoe5hcUx8&l0v%J6o$xYxVZEbuH}}v3Z`fv3Mgk*T83m zm-YC}z-PFa1zqh{G?v^xN8lH94d*N^jmCV|znQy{ZC}nZk)C~@!6Ac8sZ#> zl=@y^FLUn0sE;|d8$T7{Iw|@=g*rH*A64i>^I|`4*gm4qEA)Buod50MX@x$VU;V05 zw}-32_Taqc(>{n;ul22E)aD*!zI9+Pzjf~De zRO$~g8mn$T^-YLe@^3En)cXj!`S!toE2Fho@BaJ(^0_1zaqhZgU*)ao2aN8AvCgUP zeVRRTzn(9(r+IUi+v{g)-4O?Mt=?ZK^Ltb(PtO&Q%2&CMxQ-<@<{ygMf{c%Gyhz4 z*EIPS6#n-VcKbXB{g#`jjOgbV_Sq-dUlVNY`q`iQl9EgQHgx+>{&sY(d3&&G9pLcY z;H_IGj?{e(I(?1IyQZ*jnR_U+4Uu3yy64sU95dgo=$^aicc6QpTkoA<_bTc&3^<}-30)O`-iW&L~( zn{Pk-9|gO%gUJ3MpSf$na@rL0evi=@?dDPUH-uc)!M`=^UH`2m_TEu{8eLy=t3Qv< zr#SECQ-7i4qWg^2=V^}xS&&Dn#_B&u##6JB^|JupSrfm{rj(rf){T$%(aTHTwX}bA^J&`;ah;;S0<4dF zq}|^e`p7RTxoKecOu4q?ri1mJhB%MwDwn)7z;YAWIrF{}VM`0F%^25SJ~6KXS7Tm{ zZj9@o%^3GbJ~0P_&68RW0s9@Uq}D^h^7U^i5%gsaLb1Jwx-)ZRj$;an)HJ{g`>nHDX z#B(zru?B6a^K@{1jTXS^tIaj?K9$Q{Zvb0Q^o6CK^>`z?KJxK-Q_bg0bp7O0%OY^S zmb2jW)n+YcFv=zGVz7Id9Or=R=jB{Dd3_Ui9@xIJH|K-(laJ2@VCRd^o5A|YTZ_*p zx%j^YY%S3*0y{_6|E*ws7i@^^>=+ zOBm(i-wm$zwF*6bWuCXe>8CAmJz&=_dN0^D%e;MHedLp;A8amd>1zO7?`t)jzS@%i za&Wb;E70|mx34ZnIsL~oUWx32oXq`sHRC%Fd%p_NXB^`-hE`_dYl7J&3XL>FK@TYESP& zx9@76_oK^at{cGhp4P+3r>75qjgwDLH-eo{TfL_b!fE%)JRbtP|J7PPj4q#^J_0sY zeofiuN5S^0ExB$2yFP!qTz|Nd;U2% z`ONkC(r1t{J$(TzpPudl8z-Nhz6f?cZS|hM1gG6A^L!ax-}A4)$)~5Uf{m45Q||fK z!1k&wxxNlI*C3Lb?*_{!*F9ik<&*0hV9$cKzfrY%ev8|~Ziv@t#NXVzGx{6bXTrV6 zjurj>ioOy2U`>Cqq8smf?rOa6x~sbHyQ7=0RnvXP9lQB_&mCQV-*s1Y-*rcyfc^HG z?)z=+uIUEGZzK01)${+IlJ}Wu|LXDoE?ECTBzy1xSYChEM_t+=-&hsYDilSti8$Hdma6s!R}?A1-}97BX9gmjB@e+ zEm;5b`Y&L6t?tpkqRXd`-+_&jPoCd{ts{B<4P0Nde}|J#p8o(FC%=aMAIJEgi21c8 z*MEV{HHc)sKY-<<|2NqAuVKy1^G8H3IsOE$_w{Eu`PB0luyOLq`#<37`us0?y|2H* z$tTa>z{bg^ufK!MuPuA;AC~rOFWR&B@|k}JaCQDs=$?V<{)~o`&-`P+#>pqoSa5ZJ z#-W?%IV3(i!pSGkc(8Hu>0>9b`L$(jcLtklu##&6oP2Um1XuTG7j(Jg*cDvwYZ9D% z>UkO1IQit=4P0HH-O=lPO@@s8>**5#9a(d zoNJ=4pLhwQ=Tl$L*CptluQtZ?u@o%70iO=WWr$om@<(#4VD$P6-zAo(77Czwz1J)(UL;yamfaMyyZQy=>sV3f;QSPPb$ z$Qu;>*Ma#I@1(W)o#c7S+0t$g-qY^_yH?fjgzM4ee^+*EuL z_daxUSHC0Pk1n6{a0A%+jMuiN+~W^`wXH|ot0D5<2`9kH$wCe zq3e_RJ`DC=kGN*${su12jwGQ7ypGB8bysXnY?nM6_VjXud8t*;#`I66j;xC|^Lq7F? z5p3LDjH&-iVELS@FN50=`TX7U6|lUL_m*D;JBPOTeGP2iifd|JUx(9In`?SIqg?9# z23StpJ&fwdasI{;`w!qrjCV6?vp4yB!P>rw*qis&x4`cGAd=qhgOj%w<2Hbel~3Ha z!S1th)}XGRXDs{VXwD&gz6;i0-}@QWV;cf{MzuWvR!^Uszz-qXHZrPPgU|cT;QDXQ zN8sf3f0$8S|E-MQN8HCPjOO18{z1v7mM74yGw)ZQ1j~7ad#dE5!~L-2Ja3D5o_jWb m1ZTYd+I_a&NG;lajPBg}Sl`o(KS3Tx_QG!c>iXsX|Nb8seP7i8 literal 11080 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

FhBgee50X1 z_11u`sXudj1K7D$@4*|<)UzgU0;`#yytUxuxh8Vs#Fx@~K8^K!t%G~MnzWfm2Uz_9 zV%F1cz|=0oeoKvwv_5~}cc#8hOwDg;acXyi>$Q8()Q$0+UJkB*A6|i`p0()(o2MSF z53Ifk%X_yU>^o9l-j!Wob?5dlzPEr|wBdtrW41FM{X<}5)LpLuTD8QFfYmPG9qo70 zC|FJN@$ZZ5^=35Xb1>twE?0u<>+)7K^{mTP;QG2;ji#P8cpKO}^=Mnb>epcTJ+c+d zPw{(1|FzhS%y%l78J;In+$vyWrNY-i>#|)pH)+1GYc&^=&Kn_-3%a zn=tpveZK|FPvaGse&=&Nt$OzUz2GtY;kUw#Nq_GHd)H&GnYG`K#!q7bW)1U>4M`ysgJ<$|)$55v_o9~;kR*5GyoYZzyLx6!J( zzP=Ye0``pVptTS8{-a>^yca$OR&!r`FMI;*<9k8h$1yeE3*wCRli=~Oj^CkA!PPV$ z$LTokf`1xw9Cy;1@16Thse5PTpM_gPJ>&lz*u1-GGyczm)pM@C0KN=U&)+>?1gmS_ z5$k^mY#;g(_hqp2)?8ELzJg|~KG*aPTD6S(t6(*K_tMJGU}as~uYqUM-b1U;xv75x ztncfXbMsz(6WpS$-kJN*)E$d?_k+z5Daps5@G7_Hp+r)YO$?&FiR)_)58bg5@7 z--kQS3(L9x0IcQ{?T4kN9PLM?=6PGi``mlI)P*YCUSR_f~e3EaMoaeU9v{uFxx zI|#qymmBv-ZrtgZ|K{X=xVJttu+xb1-|zM<@pRh#Fz?C!wEo+Z+AM7E3ZGr$?KM8X z#*eD;Q)_%hjjyWlH8sAr#@E$&Z^_-4Y2X7e=ePmxJPt0kF4p7_@S&yV+VvCT9XhPk zT}$UL&$)Ub*mVj&9BhpD+1w*AW7Km`=Yn%j^S*cynz8!q$8}Xp-FaX&-_O=P5@SmX ztk0ZwTJ_|-7+lSH3EUjlL7zG9k9u^nJO3SZHgfv)u#n3{DG^Kx)ImcAE*jZ;tGXM#^FEo-*~u5Ns4ods^k(%&+$+EOerXM@|Z z^mh(;8K$0?bHVLcV$K5_r@pP6i{BECL0`uCN^pIRmZKS~&o%O%s->^3>>j4ZMd12*S&gP{Z1P?Qc3#<= zi^0aJC*~5c{Uzr0VB^#si|;43#J>UTSi;{3wvVj;o504Xo4B{$ z2{uOE{I#@diSGb=r?VE9f$M9r9?dv?$=d*SoZ+2d$Cf*@5p0Zl#?l40mcI1Y4W3h4 z;(Fl5>P!90!LzW`zXEKWy7O8`tCsjp;Oe~k;F(wY=|?k8U-AaPu3z|Dz^+;P9RwSr zo;pKdYw63phQalDji4E;FZD;k)p>1(8>jBPdTG^+pGJEnwl8)z_w#Dnw_)qBt1x4x z(q4n9C+1r4I&2G;n5|&-jCUK@ysg-p@;l;su>I+qgl)(2-Ejk0zfbykJJ>T&9m_l5 z>fUq5c4LA0+lV%EdMCI#r+2}fceT#D;p*w@J>Yd%bxt?I)ibA?!RD!FPPc&VPhWjb z??uz^lYVXmyZ_a(ybrFPIlUijuKKoeo*w`^SAD5<8`$-!j`@Rd_0;+h*j)9j&xgU) z^|>9s4y%r72V6aUeFW?pR{Q!WTs`aaF|c{+S)Y%C?N48QeLjJv-zWXt0j}@)C(+b1 zr%!>+RnMI61Xt&D7regbpGH$pU!N&ss&o1*ntJARH`qM&%;|Gr`_osS)92Cj`=p;Q zfa`nyMKtxy=}Ta9)wh*<{$;Rp)t6dd0b8p&=6m4ksdX>dT=mrYD%i82?@x?c?zi~= E0|Y@jEdT%j diff --git a/packages/ludic.render3d/shaders/spv/7ed7de52.vert.spv b/packages/ludic.render3d/shaders/spv/7ed7de52.vert.spv index 41f6faeacf85e6964b31364618e58d6431fa9638..2128ef9ed58bf8b3da0dc75042618805c3195167 100644 GIT binary patch literal 23544 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 literal 23312 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 T`)O~)x-rM>yyeEl|5Nxc0%%IN literal 9396 zcmZ9Q2Y6NW8OAS!0Ll_Y6cxOPd!T@Vial7^tr}zcEWADOH57(v z`w~1RSQJ)U3mAeysn7CG7 z_Y=YORjtP@fjbFvniJm;xUsMv%v$u9>W3L+OyMfDzP4Ih?3s6EsI)oRaQ)t!q0F9o zhlWa?@Ot0gr?w3DZVi?C%Vk!jky%#Z>~TxEc15}7CE;=I>OT6a{gr`A)wLRz=(-ZU z(mSxOvW1;9r|xr~@txaU>04RpA86}sFOT@#YkeHB5ua<|UH5T3-g#o`gIV3%;fNZk z?Rx-yb#J|9>M0afrFUf(`JNlO?-;p{{9#(T{mZ=va=Vp#53>2bljNScRb<8aZ6;Ri zqpz8N2lu=kkkjVCeIn1)Y@R%yr)FLg7J05|Hcy_XR8O?j7_9W(-dxvI&eS#lVrwR8i=(m=BdDibe zaF2ZSdk?aE>OGLVF8aL(S?)cMHzfXsxL#)bL}0AXIy?_%01iildyvru{CB>!94MFko!@@X0RgegWUeJPw>NucVCPv(w}SS zqjm_~y)fU}`t93T_1VmSBCUS&^c_r$zve~EK2A#cG_a2~r_&l^P5tK2#CVnkKQ5s= zM)-n+4>yH>QQbenmnOWa$^LH!7ZYBuFW-`K=dcwV>ta3q+c3xL_;%4cCifuv+YRpes(c8~Obf!6-jv`GDGJhkND4ljd!0S z{_|jU;KY7&p zI@mD>{|4AGwNTr;;P1aN>gM|%Qj7R+fsJ>(uJ^aGVJy2o-%0h`i5Uz2E@qy3)cGFR zaYUUTfQK>Pa}ncrhkDfc5!gKSooVeKgRQSGYW)N}jAi%Wr*QSC{WGxrZ%_C1=U}y{ z@eA-UmYvrVaP=6^FTv(LfkoY4fwSxLYxppho!66a^{De3uzBh+uit{Ludk(0fA9Sc z?0lVz{@8o<=>PZNZ2y0Ndj_)e_#<3B`u`KyJoTvaXK;3Z{sOm7b{>C)t4E!`fz4Bo zdHfx0eSNXE{{UMnyFdSgt4II;0%!N<-*C04@f0{eum7N_$9SFwo2MRip8;pr=UI4u zUeBSaN1gwI%~Owg{SRz?eX&2!gPpH)(I59uUHl^LahP-P_i`-eZ|WE<#y2k2A0)=# z%>6Mne@maH#zb15=Qy|eCSYp5XT?!_GB{s*3Yxkx4^ZO(aQ=U)ME{f0-L8E+RI3$EgQ!ojp%+w)8uP zt;T>|tL(i$8Ll2Nr=&62dpH+OJ?3;OSZyXXBkwf0wX^Snd2sbO5A(tHXTH9j=^mc} z*5@~zd*!|_1oKxo57X~_{M}ZMyp0UyQ zIbi;hzKykS`%!K2}&3*B`unO$sdqLm%n40eeag22}xIWhU9l8LnrujHd z$FT-}5#~59#LV~3U7YIPS@~MHHPmDLmw?S{!D9TEg4N?(tpoc`Q;%T^w-Y1LxfSA*5`T}3NDi0hy<7~M zjmz*EIbO{1IXQl8jxWsd<{WRy@%1^rA;(*DygTLY%XqN=56n4sz@5jzsn*GwOa~v5 zYOYsup!; zgVlVmTlXl8ElsdKbBeU;k#jUSn{y1@9M?ggIqr{o`PX@Jy;j|7U`WnEyTMTAzifStnx71{bmDdokEJ_2~N?@S@aW?UumRjgMN(z(p+j zYXYk+#Uf@oxQIo6E5J>ddc>RyE@Bb05^S9M&U7w*gE$6#G0yYB`88UFW~@Hf$a|_5 zeXRx;GyH;-N8cC1jZu%BHMy9J;Kr%PSS|+V$Fdg9SbdJAnN}_8UIKOxqsFD+{CQc2 zrfzKHT?Teuu{W24jZ=@9E5P;_F;{|(Q+F)BpVT7$DzIY-el^%WV*RfH8>4RidRn!J zzZPuG;MaleKk`dpW7N&xK&uw3%Icp2>2;?8UY8>1d$ z=>%I#U-Z`no|#(2Rp7?zi~2W!r(#im6WBO)=haH97V$mc?7Vv6F|X*Sie{X?$m;{U ze!*`9yJpdE4Qz~h)aeIXOJB@u0GyxKAeyoIqW%y#JFm@fM^Ge zfbCCTeoh}m)9(}gdtkSRWykz+xO&w31lU~l SsP##(XF=Z!j9Tuu`2PX-`ZEjw diff --git a/packages/ludic.render3d/shaders/spv/9068df1c.vert.spv b/packages/ludic.render3d/shaders/spv/9068df1c.vert.spv index 52c448fcff014926edfe28ff29dfd64a3c20828f..a07309212484d6ef3fc68e43a177fbc8358b83a5 100644 GIT binary patch literal 5744 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 ZzXAHmoBI&+Z^1#}x6!)Q^^5=O{}23D;-CNk literal 5512 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 T`)O~)x-rM>yyeEl|5Nxc0%%IN literal 9396 zcmZ9Q2Y6NW8OAS!0Ll_Y6cxOPd!T@Vial7^tr}zcEWADOH57(v z`w~1RSQJ)U3mAeysn7CG7 z_Y=YORjtP@fjbFvniJm;xUsMv%v$u9>W3L+OyMfDzP4Ih?3s6EsI)oRaQ)t!q0F9o zhlWa?@Ot0gr?w3DZVi?C%Vk!jky%#Z>~TxEc15}7CE;=I>OT6a{gr`A)wLRz=(-ZU z(mSxOvW1;9r|xr~@txaU>04RpA86}sFOT@#YkeHB5ua<|UH5T3-g#o`gIV3%;fNZk z?Rx-yb#J|9>M0afrFUf(`JNlO?-;p{{9#(T{mZ=va=Vp#53>2bljNScRb<8aZ6;Ri zqpz8N2lu=kkkjVCeIn1)Y@R%yr)FLg7J05|Hcy_XR8O?j7_9W(-dxvI&eS#lVrwR8i=(m=BdDibe zaF2ZSdk?aE>OGLVF8aL(S?)cMHzfXsxL#)bL}0AXIy?_%01iildyvru{CB>!94MFko!@@X0RgegWUeJPw>NucVCPv(w}SS zqjm_~y)fU}`t93T_1VmSBCUS&^c_r$zve~EK2A#cG_a2~r_&l^P5tK2#CVnkKQ5s= zM)-n+4>yH>QQbenmnOWa$^LH!7ZYBuFW-`K=dcwV>ta3q+c3xL_;%4cCifuv+YRpes(c8~Obf!6-jv`GDGJhkND4ljd!0S z{_|jU;KY7&p zI@mD>{|4AGwNTr;;P1aN>gM|%Qj7R+fsJ>(uJ^aGVJy2o-%0h`i5Uz2E@qy3)cGFR zaYUUTfQK>Pa}ncrhkDfc5!gKSooVeKgRQSGYW)N}jAi%Wr*QSC{WGxrZ%_C1=U}y{ z@eA-UmYvrVaP=6^FTv(LfkoY4fwSxLYxppho!66a^{De3uzBh+uit{Ludk(0fA9Sc z?0lVz{@8o<=>PZNZ2y0Ndj_)e_#<3B`u`KyJoTvaXK;3Z{sOm7b{>C)t4E!`fz4Bo zdHfx0eSNXE{{UMnyFdSgt4II;0%!N<-*C04@f0{eum7N_$9SFwo2MRip8;pr=UI4u zUeBSaN1gwI%~Owg{SRz?eX&2!gPpH)(I59uUHl^LahP-P_i`-eZ|WE<#y2k2A0)=# z%>6Mne@maH#zb15=Qy|eCSYp5XT?!_GB{s*3Yxkx4^ZO(aQ=U)ME{f0-L8E+RI3$EgQ!ojp%+w)8uP zt;T>|tL(i$8Ll2Nr=&62dpH+OJ?3;OSZyXXBkwf0wX^Snd2sbO5A(tHXTH9j=^mc} z*5@~zd*!|_1oKxo57X~_{M}ZMyp0UyQ zIbi;hzKykS`%!K2}&3*B`unO$sdqLm%n40eeag22}xIWhU9l8LnrujHd z$FT-}5#~59#LV~3U7YIPS@~MHHPmDLmw?S{!D9TEg4N?(tpoc`Q;%T^w-Y1LxfSA*5`T}3NDi0hy<7~M zjmz*EIbO{1IXQl8jxWsd<{WRy@%1^rA;(*DygTLY%XqN=56n4sz@5jzsn*GwOa~v5 zYOYsup!; zgVlVmTlXl8ElsdKbBeU;k#jUSn{y1@9M?ggIqr{o`PX@Jy;j|7U`WnEyTMTAzifStnx71{bmDdokEJ_2~N?@S@aW?UumRjgMN(z(p+j zYXYk+#Uf@oxQIo6E5J>ddc>RyE@Bb05^S9M&U7w*gE$6#G0yYB`88UFW~@Hf$a|_5 zeXRx;GyH;-N8cC1jZu%BHMy9J;Kr%PSS|+V$Fdg9SbdJAnN}_8UIKOxqsFD+{CQc2 zrfzKHT?Teuu{W24jZ=@9E5P;_F;{|(Q+F)BpVT7$DzIY-el^%WV*RfH8>4RidRn!J zzZPuG;MaleKk`dpW7N&xK&uw3%Icp2>2;?8UY8>1d$ z=>%I#U-Z`no|#(2Rp7?zi~2W!r(#im6WBO)=haH97V$mc?7Vv6F|X*Sie{X?$m;{U ze!*`9yJpdE4Qz~h)aeIXOJB@u0GyxKAeyoIqW%y#JFm@fM^Ge zfbCCTeoh}m)9(}gdtkSRWykz+xO&w31lU~l SsP##(XF=Z!j9Tuu`2PX-`ZEjw diff --git a/packages/ludic.render3d/shaders/spv/a45356c7.vert.spv b/packages/ludic.render3d/shaders/spv/a45356c7.vert.spv index 25f1e1077ce58cc27955ab553070516a5430e3ba..514060879d9a20bacadc528408631e3b506e914f 100644 GIT binary patch literal 1596 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 Gbl(En?wKe6 literal 4896 zcmZ9OX?Ijb5QZ-#6A)Jf1UE>CiVETexFST5MNy+D?v4W)U|^Vunato0xS)v2rlO)4 zMFe+o``~Zzga5|m9MAE2?%aZV(m9oW>#e1$ySi`EF}8PHl8i}CPsS&|CG9aW84HuZ zb*1z2RjXIcZ43|0oj3m)J;Qhmga_ z2yz5DhWvv3igfTZmiZ477m`kXPUS3Mo1l&qsP!!74b|e(^7>MfjA1GH(a@O1|uC3R~4Y;n<&o!IH#^y?`RvrLHyt`}`Tb1(GQ=Bz5 zi-SY;O>*t{LdsPu8#WFXTZ7iuk(>kP5YJ$4P*;H;&!$w|TGqLd+6(Dfm5Q6{m0C)r zG0$RSS#W21j-}#Yz3tzbo@uMNH6^rrzO7Gq>l zY?R%+`9@NGs6NcBZl7Akjm>IRy(>A2&e`{uht`ybhRe^Ore`7V&{l6$hAZ_N{J7NL zb5D6Txw`UPS--G({@9jOD}zfbjp0&lUHPQV9%y6nlQz%Pd*iSk?+-rhVpi4$tf;`c z-YNK%wRX4%e7PPj8nPXdp?)?=v;Ef_2=Teqxm@X(Q$Id?ajp*laCXRj*~O)PvSgB?|Bd6 z2z_Q-O?7S45zkuttV}nLy59)x4t2j5dEL9M?wM)#JCfJE+v=X5cJFpxKb+~FllGBJ zcmL`~GQC|-M|xMyWnYdmJ5Fy;Cpl}8a}Gaav0SX>JypLFac%FX`fOwpJ1|EN z8H^L32lCvyk*WCG3w85N5FEZb2AY;Q{eP_lQukO3h$9u4wSzqjNS z^&Dh&4eK}m2h94)>#y!RlGFYXv$0`UKa_FWKLP7&PUF>mXL8ZEPr(QG?pYZ5M@HE{ zLwC&Kow?5Eh@9sTIgfzN>0SMT+4bzpbdYb;^On=5SlgG(#%MQ>`mv0&HhX^@@y&$( zO=dU#M25|+{xkC!#5nV*`;O&8_Z_P*U@xArxgFN=H%x(9U*D(y!T))Peo~_?N`93_{ z_Z-B1T!v_iy=I!E)AdAGO=#n-J@F1a~u7Ux#(*cMGDgw(z?ZY^?V#xP@S2 zXe?M4XZQ-{XY^?nW?g6l|auNF=SYK`7w+3vi{R!?N zu(5Ix`!HBvZQ=I_*jW1$+@oM)^F4bEU0-d{v&X^i#hT2mPhZxvC&BjY2_$+}1j~od zQ($|R_bH*vTeCe|i^%1Bwl3qNX9MWbGi}kcGFV&mY&}@cI%2OI!0y8l+(xjzjySst zSYK`7w+U>l{RwU}*jTxUt%CK{7Jgg6#^!rgLpL_xvpTxI+9GxkY^?nW?rE^Ga~V}1qMj_9v_8?ukQ z+FnImTOaFuHsh>I`|F6@z3j@m-pDw4hiki*u{)Wy$DZBOTVOdyF!3~k64Sj^>q*K_g&;b$`w-mJ+Qv= zXArB;`-u7cc4+r3b}`GF=OFXP$RR}AhnX%u4E{9ZN0>j)@DXPF6nF3|uy^n{66gCh zSU!Bd1?%$-5Ov{4>nF-AA9@*Vvpla{0P=h-rOgce?pESz5(l2*Y7`eek1Zf Dr$czX diff --git a/packages/ludic.render3d/shaders/spv/a64015f2.vert.spv b/packages/ludic.render3d/shaders/spv/a64015f2.vert.spv index ae8c8703a47839537a0b9fbd94245572568b134a..69cda115c0e2c462efb9cb8f9bd6508ab4da4446 100644 GIT binary patch literal 5056 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 diff --git a/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv b/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv index 29f400e808a71543c75ea18bbe75fb27baf0d4e7..82264a1394c1c547dab7db4c9c55c099f90e09e9 100644 GIT binary patch literal 11368 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 ZS5K{b!RD%`)>pxv1$}>J)N;SY{~sPxL&yLC diff --git a/packages/ludic.render3d/shaders/spv/b79a1f4e.vert.spv b/packages/ludic.render3d/shaders/spv/b79a1f4e.vert.spv index ae8c8703a47839537a0b9fbd94245572568b134a..69cda115c0e2c462efb9cb8f9bd6508ab4da4446 100644 GIT binary patch literal 5056 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 diff --git a/packages/ludic.render3d/shaders/spv/b964507f.vert.spv b/packages/ludic.render3d/shaders/spv/b964507f.vert.spv index e7f2128e41e17c72bbf213883718024ebf539ee2..009d9a14d5c924d84b66707f34ec396ac163b152 100644 GIT binary patch literal 10968 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 diff --git a/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv b/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv index 45214a4e56a8643e8f51eeb2194e7eca6cf195d5..9b3f16fa25e66632bbea7bca4c09cb70e3d083bb 100644 GIT binary patch literal 11024 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 literal 7708 zcmZ9P37A%86~`~j41??sz+(*uJo@f6u~Y%NOZ5Ive7W+s5GKGZg7=ul9&PiYy?} zLS!j&DRLPyg#QL(yARwzL@}m;eT>1@*-_os*}tQ^R_pJa*SBQxnge^6tbuPJb`)!W z$DtgL1`iyl^W(t19ep`JMIS`}3hUm4XR}rlp2K>OPV`wJUR=jp#Y^kBMa&TN*$M7T z{=3A}<9g4pO?&NU9 z_lxrxHDnKf=_x;9U~Yei)j{d|M^;7v9-5tG-P_x~+k2>O2F-US+d1I4 zNA)mMGNx{G{@6BkRrhbM_Vu^-?Cv;a^BlAdbakDw*^BRlkNff6z^A^MZ9RM3Q3JVs zU*Na()N>|FmTgJ*X+}K-`jGt0-N#lUy<0xscb~2J%URNM4j*;Tb8Lw-uFlot%v+38 zFUQFl*MdZTdzZVVzN0zU(LNM*T~7n$uU#HT;Z`vuKz07ID?O{>gx>FB;DUJxyk5v zv6{np^WDvAKF??dQNCm9`YGnoM~Qh`=M(78NPp|7dzWKw&hQ>2&hAsm7JX^|EaH1( zzRxAQb)xSRiBs4A8;JYV|C`C?o?;H)1@kn!AJ5!(#V6t)2FKjY_h-cYm~R#Xac2c;&nE1v;P{u@Hv){cmj0X3`Ipbn{OZ29a-sX)s;}TQtmBM)%<~A0XQZ$1kbe_6 zr_k>$>HcPh-Mf5$Nq?xM`&$|Q=J)q9bmRTK3|+gwnW1}T{${GLWq+Q<#}M!P26pY8 zJC1lSy^H#ICZ9%*BRAt?%x4he^y*hun=>O|rIrr{6@-4(# zzB}Rb?Zh8TIlqH$oP5mfdtl@IHpbk(50<}?IQRPl#CJ}@^b|CgeT&En*&HwHfQ3`W@nYA4ZJT z_xFhWNcwTUe?YuPn-KG8ckjMK+M?#4z;YXi^3MMSF}L5hVn2UPHqYJse?yFwkJ!J1 zBevMrKj5{6-#-g}#Tt*mYl|BH0vjtIef=A3U-J;{a}n=~d-@OJzVsQ%smuKr(SHG= z{TO15v+(<&-C6h^K8oCl#5?rA#7$=%Nj7~mwgA4Pf^Z?^+|eoW9o3CKvZ&7})t2zco#8^6{-14wh4VT%z6?DCRVucVPs& z`R++R&T}N3e7uXJz;a5wv!lW0(iUev1{`}kQOGwIUR%sz9N2jIqwK>up9yx~+U(o+ zMlSX}9xUg+{cfFwZmr^XYXY2n%yJ^wIQi&z64JS{;WrIDomeG$n+~V1Hhc4%Bp1C^z;fFB{Ze1eUGywwg2%8vfN0al-#mGH^4oMS z*x3}{v-9BOtzn)yVB;cYF4&mjJ3J3gKE6%ogUw^CHf#HPDsSGqiN63Wr_H~A)T6J9 zz|og~`>0#rzfo2oo`Zk8=zkY@W#YqUb@K7=m+-k5EPoq$j9CLVPCoW@3D`Zww|y;G z&L_BaiIWa)ed7FWXi2{r&2Yx+uifv;t<=7ObpyKf^>NP|SvMj6edhggChGc~%m!tv z5dVhqJUmmMk;qE?hO>@Jcm(Tc#J{b^vc}(1%fy=oT!^!I#xt4&yYr-0IncWZzH%Fkq@6u;0h8xo5A|Y zA5Hi1Qm}i_7W=#mT%OSuIDNG_Bi~cGsI?7TDd>+$denX_x<2v|v%Tc=ICTBwV=s>f zm-lixoW9!J%T`vo$a@9YGmIQh0GIE}4mf#zBkqY{`--!<60Dzm_*@0HUidr-te?Dl z@%tnf{!a$Gm(ZUAwnohVsbGENjo-;C7yeHJn=|yMgRLL&tzdoRjo-y87yj*F-|3je zGr;9p?1s}%Tg2@FyU)-&!0s*HnZ00rHT11<&UN_ o{{YxtwMDKEg3VRj^Bw5&k?TWXW91{)hr!+jZI7~Rb^jLsKT}ehsQ>@~ diff --git a/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv b/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv index 2e2d42ba4d24192e25957b68519bb122b65a5394..00e477cbcb138af150dea2a269485bae4f634e03 100644 GIT binary patch literal 11024 zcmZXZ34oS$oyT7pKopb|FVYk|3dKytGek$!JR(8KBU4{SW`I}cpt(?!98$`xyeqW} z%T6;h+chw2Gy+XbJ9fABba&hPKH84mYCoUneZIr9&pyo0|M&a-9sm28cV0Ut9ky$u zu}fomV_M@!yEKYtuf`;lM#J`a+Ubp{1wVJm@+HR%4R;@N!imQkxM!oortr;d%qs9? z{@d5p>X&TBwqo0`9oS3Qg%o}SdlY*NdmMWL+l>7H`ytlBze(nRr!*$>Z)eRZjB_S@ zO;2m}n&IVr0|Ucr<_#Tx+``dS$1g;mLhc^4!#&p*cu(-isQOgq(`fXLbhlPESNAp@ z+#oKCX=~5HD!si^VLSF;{?x%J{3r zW&AbZfl_zD21@-&V=(9L8n&8)0~yoP@RfzHqwy^5+5%55*14;>b|87Kd251qG+uz) zhc(@cu4eyWU&-B<(Mlg~=$h5T#n>l<*RC;dT4O4hl{>p4i+cxF zUe{oCSz-J>BhArP&$^wO@dp zR)6=-{3(UDvTLxrNl!cVsXKK>y;J9qQ)Bhuz=&0L>eC8+c&Irr*jml8&G>eUzNV|! zGZ20ELhl>s?&)pXf%`kHoVROxFnDNP*A2MvO)k#+Xmia-Z*M#HGW;vqK=W3B2YY%8 z+$|n#=M00}8SS`@a3^WbU4?HHJf*P-%vudK+m``la^oSiwOxZ<*<0`0Xmee0F!X!x zMk{;o9UN_XL)v|NAG<2tyE)n%>gi$CyhBgIIRndj1~2Uy^pf$oHtIh528LS0tpV3^ z*Fx7-=&krv z=l6FzqAAq&J%WCIf4gSsX*AAd4ZKqaW1cJd){@f{+`FUS{`GrbniX zHvQfO{grwx&2q4 z@B@i=-Q2%9^ymKgsO=ATZ_Ky0e)~37eJ=B#L95?9eftu#FYO%6KIWHvKd_HA51=*1 zn)=N@1mig){K$fiP4E*7KHeGsscruR?<{y{r~SVZJg4C8`tqAf?i|*GorC>aPyZO^ zcpcxZwEEnG^tTc0WB%7^jWupz$$hV=>EBXfYglibR_q?>e}>ln$4mZgT65*rlW)b; zQh!^?Gv4iR>m}a1XuS2mSNhx|{c_)1#wXu9>G~gle+r4t#rYo0Cn(=rYB9%Nx10-g z``ndy>zQkxa_@2W*!|uO?ih^Uz4V!%HQod5!3TaavFCfi=goY+GyeVHFYZ{fDEvV9 zkyqY1!RHqFvnTQohc8$#Ya)MMk-y_~^BvE8xN}aulZ*H#3cur841e%}*%SPn!oT1Q z$Nv_vb1}~O%6%_ojjg{F?mDIZ#c-a^eOQ&{;OJL@U)(WcV%&Xj<~7mpK;hr9=xBNy zr@(r+=h5-mWqZRI%^S!Fy{I7udDf%~F?t4~E?)v$jHU1#@?}A<1G3;QF?^MsInm*0C zU#B%kzjfq(Mo`N-Y=QIBF#aik>)_dzZ>KfZ+Vbzi`6qq8lP9=r_}fbHSXV7)%yOORpnRL_%$`&Uvk&gJF*Yv9J}Gx z*}v3QvnB_CXP27$Hb9K`=+&j}S~`EZ_4FNtxlZA)0UP5U>G$)5G3v`oZ4THy({3rX zxnN`GVD{s>s-^B>V6_?SoOKV!*wO;)Gsm@8PtI$>)tuMC&2b&{ndAPbC+8@zbu!lZ zV1Gwz8SBwtbz_tFdT=%G7jbd% z^kw`ffln;$wsNgch8wHTHSkQTrT;gAoy#3%{6esrbrN$L*qHRa2yC2s`aT`(=NBz& zcLrG9_|!TRT+u%2G3trAuoklvZk&3?vJ6}w%SC9$>T@g?(5j{Gac%GTQn2&N-dqMYPCYS~gY7RdZvz{r?pS<3sU`mHV8;@ECD=Z){#SvG zQ8)hzTD8PC!PX340k;3-cY%#rfti0btyg)id5(z~-r6&TqO~Y2Sm{pT0@h zM(iT`wU75=`hC*RZD7wpbu90Lt9#GQyB#xEJ#%_LxH_i~z@2xs&IjS@>FW+~eNK0x zsb@}ifz4CTobCqOpT7E>?m^SXzH2M!(emOGpEmht8@A+yuRn3LsL&*pD$y^XfvlTfYmdn zFM`ce&zv3s+n>JroW6vn-zWV%3a;<@m(kQSr^mqNs&6Rw{3~GRsxP%32U}|l%b33k zR!^-bz~-u_*4MzE1%1C^)be~5cMf}DJ{_2!x%Z~^Gq&%9C$U{C{OJmR2K;P|zfj@k z`=PIzKe@*JK0AKvT~^~OD%^VA6>hxWWmoezR`_)Mch&eqC3j7?;C~9+j8)J7H%i@i zrt_C4{+nRq$FS_dx4`PgyFPM#9aGNq55UH#Tl*ziwZ#7rY`o)jy?=z+e|3F+uhetqejje0 zdg}ZE*m0!JPr%msF_xG=1godcAA!wN-%#FzKL%T0Uuyjc*ji&)YW*o#J^atW_J1?` zFqQTdOf5D399*B*U!bXHJbwv(1yfJmpMtCF^H*@|ROj{AaP`#r8?brmnb+Tft*>tx zBOIswJIwhy7ya3L_4NPu;A;Q>0QU@3_vats>goTVz~-r^&Od{z`|~ew>s06QuWY2yCgRQSGYx^HyYmH&)??1un;Xeac_vgRhYN_#aaD86CKvU0nehD^DJ#~Kt zuCC92!|U_6!lqaciQQg-*5VzW@^nS^^AQ_xY{0=d0VJ86TF$Wx|gp)Q%~OB zU^T!0%$#R|t*0-w_5p9BR`q=Ci>97h`-9c|?liRy09#LAYRv{)t2(Y%qp7FXL0~n% zcTKI=fUT#`b(&18mNhv9tmgLbb^r1ibM}qbFJ#g}m0^7Gf*TTI$8gp;wV;RfqOFgxYft#yto_qTSuzR~5 zOWv_)>d89}Y_7WNawhP6StDPJ$b!p1f1Q>L+84cReYm zg1ryb^YcbD^{mfAu$uYFI}MyX=O8yO<5>i*&f#=;b$n+Si>W84vleqE+&J~j;ViKF zVk~)QgC}E&c@tRe94zPITrfYy_i_3Ydmh-D`ZKrl!S&x67oe$UP2LPvGe3Dtz{zt> z-k!SdA^onna4$?zJ-|O;J0FG7h^xC#-+4Azv6eMzDqDQKNE^m`*Lu- z_S?|Zjq#jb0rsv}&*|II)U!5Mg3VKpb~RZ2DlG5aX5r_vZ`nFuKPRd?w{iOE0=qWh z*T9YOyA%B@!N#bYzk*gR@jYO*rM#neCw>)JP4k(AWv^GGDKEy1%et%q*Vm(JD*2EAbO)T8x-)%&pg9$5?Kr}#ahe*p8lg{f%o06R`&oNqU+TF$~CSZxO1 z1QRiD3;JWn}W`kjM!dIaoRRqymDTs<-C%9t_Y)93YQ>Y39GV6{VtN#2cc zYgd0qyc4dT^KcW`{><06q1@wlf%UD&+^ccw-VEla_#RTf^BJa9&)$!L{XHJO0d7qC zdpFp-9&^pCeG3{t#rMkAFwfZZeJhxsqHkmE+kVu4$%)F{vQ6Lb0p}dwO6+^#+h~`T zeclFF(|l|^n^}YRAy~sW``bvX=KA_xct7SDy&cQGe4y0xUictf&3*B`a3|Qu_kzAV zFg4!`V(U28yTR?Tw(rnAa5c@xaXOCs;2**q$Gw>O-nkE#dcN=c2;3U#8UF)d^X|to z{s+P8IaePAUyP~e@1Bo=)wO*8_HnR%=u6xuz|LE9O&!-K(TvsSn%+gLmT`XytfucF zTKTD*zp3PY8a$JB6Rkeyrv4eQzK1dA=DqqX*u5XaGPlp6sXG?)J`XlmJ$YXMyU*r1 z2Dx#bvFwwrHOGnh64-cSAEA}U_hqnWRNtdudFJ_5@Z*@i$7tn_!T0^w!1d3Zzk{Z3 z{1dct C?gX>| literal 10792 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 diff --git a/packages/ludic.render3d/shaders/spv/c57b4f14.vert.spv b/packages/ludic.render3d/shaders/spv/c57b4f14.vert.spv index 25f1e1077ce58cc27955ab553070516a5430e3ba..514060879d9a20bacadc528408631e3b506e914f 100644 GIT binary patch literal 1596 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 ZzXAHmoBI&+Z^1#}x6!)Q^^5=O{}23D;-CNk literal 5512 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 Ao&W#< literal 9340 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 diff --git a/packages/ludic.render3d/shaders/spv/f4382918.vert.spv b/packages/ludic.render3d/shaders/spv/f4382918.vert.spv index 665a4db794a761d76ff3de2608ca787a87cfc83f..5fb95e1f9f27e7009ec2e3262a44791a0388257c 100644 GIT binary patch literal 7972 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 diff --git a/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv b/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv index a2b5cd5fc44137f84d658e77106f45c0b08f1e3e..1d28416e83d7c287200caeed74f1ec000d6df0aa 100644 GIT binary patch literal 12040 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 literal 11808 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 YQ|qf>bJbJpYhcfUzW*?4x!=YAAA%^JlK=n! diff --git a/tools/ludic-cli/shaders.ludic b/tools/ludic-cli/shaders.ludic index e33d7cab..b287520c 100644 --- a/tools/ludic-cli/shaders.ludic +++ b/tools/ludic-cli/shaders.ludic @@ -167,7 +167,13 @@ function cmd_shaders() -> int { if len(parts) > 2 { defs = parts[2] } let id = shd_id(line) let defines = Text.replace(defs, ";", "\n") - let vsrc = "#version 460\n" + defines + shd_file(parts[0]) + # The renderer's projections are OpenGL's: clip-space depth runs from -w to w, and Vulkan clips + # everything below 0 - the near half of every frustum. The vertex stage is wrapped so its own + # main runs first and depth is then remapped to [0, w]; the GLSL the OpenGL renderer compiles + # is untouched. No y flip: a Vulkan target's row 0 is where OpenGL's is (NDC y = -1), so render + # to texture, sampling and gl_FragCoord agree; only the present and the screenshot flip. + let depth_remap = "\n#undef main\nvoid main() {\n ludic_gl_main();\n gl_Position.z = (gl_Position.z + gl_Position.w) * 0.5;\n}\n" + let vsrc = "#version 460\n" + defines + "#define main ludic_gl_main\n" + shd_file(parts[0]) + depth_remap let fsrc = "#version 460\n" + defines + shd_noise + shd_lighting + shd_file(parts[1]) # one binding table for both stages shd_names = new []pointer