From 87d72e6e12bd7421903d62f6ea8a053ed392cbe5 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Mon, 5 Jan 2026 20:41:48 +0000 Subject: [PATCH] feat: Enhance spinning cube shader and adjust rainbow color calculations --- scripts/cube_logic.lua | 1 + shaders/cube.frag | 6 +++--- shaders/cube.frag.spv | Bin 3548 -> 3488 bytes 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/cube_logic.lua b/scripts/cube_logic.lua index b547231..4aff96a 100644 --- a/scripts/cube_logic.lua +++ b/scripts/cube_logic.lua @@ -531,6 +531,7 @@ local function create_static_cube(position, scale, color) end local function create_spinning_cube() + log_debug("Spinning cube shader=default (rainbow wrap)") local function compute_model_matrix(time) local rotation = math3d.rotation_y(time * rotation_speed) local scale = scale_matrix(1.5, 1.5, 1.5) -- Make cube 3x3x3 units diff --git a/shaders/cube.frag b/shaders/cube.frag index 79b4681..eff525e 100644 --- a/shaders/cube.frag +++ b/shaders/cube.frag @@ -5,7 +5,7 @@ layout(location = 1) in vec3 fragWorldPos; layout(location = 0) out vec4 outColor; vec3 RainbowBand(float t) { - t = clamp(t, 0.0, 1.0); + t = fract(t); float scaled = t * 5.0; int index = int(floor(scaled)); float blend = fract(scaled); @@ -40,8 +40,8 @@ vec3 RainbowBand(float t) { } void main() { - float bandPos = (fragWorldPos.y + 1.0) * 0.5; - float diagonal = (fragWorldPos.x + fragWorldPos.z) * 0.15; + float bandPos = fragWorldPos.y * 0.35; + float diagonal = (fragWorldPos.x + fragWorldPos.z) * 0.25; vec3 rainbow = RainbowBand(bandPos + diagonal); vec3 shaded = mix(rainbow, fragColor, 0.08); outColor = vec4(shaded, 1.0); diff --git a/shaders/cube.frag.spv b/shaders/cube.frag.spv index c004b900601b50dcafdf0cf7414583e474f174dc..e4a4aa47d80e07c5d194c083c915679cb5a12adb 100644 GIT binary patch literal 3488 zcmZ9NNpnECR5U0cjySKa zl9dZwxN(gOe*$awZgHSW%jda$PuH#7s#E8E&wS7K-R`ED%Wp|(Mw**ur|(kzS(s*G zN!Vs(x_|$n{aq8MhPyU*Z!lthYRUqQX(O*0t(+{4j_If(mypZI0%G;i1k^<3l&+E3 zg0+~_La({_4pL*NdU{W3Y5MC3?CgEF29-k??4Y# z%44{*+$=Y}& z%Wp~#!%La3DeXiLWw<$=6!QWD)d}j%%Jy-*RvI~6tyMB(7T1z!n}$bABh|4|1(@}m zLf7g$$oP5qc&S#hrZZhcPn;+X*WbS-+q1RzRx8z77SodLy*ha+OsStd&*WajGn0Eh zav!;86?_q=U*oz?KG{iR0#HE{Ec(-(Q` zz^&JpH~KvYzcSv_sM7^+zxrFF&U&~x#_5YX8^M>aO*ZO0l<^x4z6s7ez40EK;pP~p zFY0UouO4h`^xq0kX{u3YTgLkub+*IJF;1U#JhxuN^K9qF^r6GP5A1ykJ^=Qf1U~|9 zF7Tt^7Q}nuw`fhzb4Sj-%i6q0>-8Ucy!W4ht?B&s`yB1NX*XZ)w-xVe?3YMNQ@vYwOZ%AXW6a-J ze0OvG9!?_a;QnR=_ZyiiaP8*{T>r(K@20A|m_Xd0JL;i_^Z47U{Q@!aH*%YM+Qn4P zpe<^g0b9epMUA(>+9T#2urcm3V$OoKpUeBa3pP)C^nMSl-MeLP-&b4II0tr~;O~Qt ziJBi|I3?}oyAN&K>FFK1fcQV7UH=qXoAva6h)fmuM_|u?fX(Rt1o8Ys=3&+TDdHXR z`?Q96#@fR(&>ua%0Bbvt@8K)3HlMJ44c2DOuzi!;yfXvb0`J(ji226r_iowKJE!ko zDr`f%YtHGr`^-VM66c+1MZ9HPv8zSs+Yx=%aBuRcaVNM~<1Tp2sm~mDt6l6~J9F$#SLE1zuF0{xT%Tk2 zxH-q}a64jeXWW5U&${kY9=;y1_4T=1xjx@#7vg*T$Q|lK??$xwd;b^ld(l2OiPyIW zc?|JRiKE9O;OJq0dH5a$`%ckc{tx-qwvP2;o_=s~p2y+Z_94#mB-+P$^gV$*jaWw< zJ@a+d9^Zd0quO&rkXNDS@>eMV#jt+Q)hH4I$dBBaWWK;OOZ*^6-@lKJTyGd7_TG zIG=MC_vaqvalUH#UbJ(lqt|h;{ezEy>)%ZM|MUdhZ#e!lM#0)b;y>dxY%`E9#G2MI L_CNaR^LP7y6FVR| literal 3548 zcmZ9N%X3s!5Qi`1AqFHMFYy@+Y7j(0AYjacAO;aNfQn*NCd?3`!%UnI5fuq4iceI0 z;mRsmxxlS!T=*xjcJCG+RB8ErcW#fja;v)f_v`M{-KWpF_cqP$ye3IzC3BNG$@!%I zEKFu&NwBr1dT7_)U27+g7T0drc%KpTlcqG#n0D4Rqm?6t@rsUDkdKjb$O2;ZQ3TXP z<|Mhq!WOLgH7(Sdi*FA(MytmL3zcHmp>;jPH6?A>k0P#Fh@L!HD3^+Lz6?HIDVAQ# z{5PRT%cTnLbnR{E8o{nz39i-(m9bKN?JD^3Qn_3`R_FJ?$7-dLn=pPodbB)6be(sj zC#Gr><#c^h@*upB`kInH^k|Bkld6~v3|A+~)0)oXP^~bwuUado#x$-ac^zFGFN{?y zg)%U$`7XLvpFzscz$Xf|!ja7XA$sy~p;+I4OFCzBZ>yH8wKS$BoqKiaXqb{A_Trh` zig;#n&qwYf_pE|1;*>n673qm3DP9V0#nzEZb9$bhskUXTpOay4#tQhgXl=%(--U3g4-^4HtO9AzcA6;$m2`6_~NgPJnP`DF-~9PxgUJ?(o`eQ zhLm4v@QrZ#>5qMEg1g2zeUWD~c-2UIqy83nl1w-9JdpB%MxGwHYmC!p9?xwnG7DME zjT+3^cY?id5w{2IJqo@b+??a1;15S@47bck?%wY;$uGfB%jz2_nQ*j_u21BaP^rS*YEd4`&P0#iz&qUIip@` z*z2o^_EW^j`CO(p-`~@j?RaK)c71eeU)mz?n_%-g%gB2ItUY2*f{k&$5i>U_pTKdl--hq&LShatKcu#zH&EYy@t>L-okDOnEwe8O4{S{c7PuRW&Ycprq zzR7IfqhU_kd-g5jdgJxCBi8iZ>HCKan-TAyeY$razv(Vr_fuMa<_K=PD0hKiK^G zoUvS=`x!vo$B*2lLG(6c0NINCN&I%S&sE~}J%sE)yj$X^@h~`QSYIB#A+URj`trY7 zZ*KFLFZy`|obTsRxVD{${XB;Du^)ZAkYU6;;;8vJIBMFDJbX`poonM-N5c_!w?PEXsoJ)0Ae0-)O-OPHSI?pz8AsWNc1DOA9I`M06O|9fbHj}?EV}CYa2!E zr-b&gAALncn|Z`h^AI>{+K)VZV>zGqS8hL%N1gA_KJ)W)j`BEPwR}6;KGad`FxdLR o$HCT=x1wJ{e23%T@p5L