From cace7b0ec0b0a67803f5d932ec92d1fadeabe5cd Mon Sep 17 00:00:00 2001 From: Asuro Date: Mon, 10 Feb 2025 22:57:07 +0100 Subject: [PATCH] slightly better dots --- src/game/Level.cpp | 2 +- src/game/compiled-shaders/dx11/frag.bin | Bin 4446 -> 4234 bytes src/game/compiled-shaders/glsl/frag.bin | Bin 11704 -> 11782 bytes src/game/compiled-shaders/spirv/frag.bin | Bin 3058 -> 2798 bytes src/game/shaders/frag.sc | 43 +++++++++++------------ 5 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/game/Level.cpp b/src/game/Level.cpp index 4acc0a2..56f1c4f 100644 --- a/src/game/Level.cpp +++ b/src/game/Level.cpp @@ -44,7 +44,7 @@ namespace Game double time = TestY <= 5 ? globalTime * 0.1f : 0.0f; if (TestX == 4 && TestY == 4) { - bx::mtxTranslate(Transform.M, 0, 0, bx::lerp(2.0f, -30.0f, bx::sin(globalTime* 0.5f) * 0.5 + 0.5)); + bx::mtxTranslate(Transform.M, 0, 0, bx::lerp(-20.0f, -32.0f, bx::sin(globalTime* 0.5f) * 0.5 + 0.5)); } else { diff --git a/src/game/compiled-shaders/dx11/frag.bin b/src/game/compiled-shaders/dx11/frag.bin index 940235e55bb4d9451b8bc3ab4731faeae6f66f83..5b62834ee21f39051faa66dc35913c77447637e1 100644 GIT binary patch literal 4234 zcmZ<@_TXMP-Gh+<3`ztT7+fNpoKFk5&R@mywt3gjt1}<4{MreU2FWoqFfiyaFfc4& zU|_hyz`)=c?CzJtz`y_!=U`x92mqVHzyMMY5(9Dh85kI1Kny4biG$=p;z>|35Csxv z0-43kzz`f3AK)MC8RF^h$KdSm;~&Hj;u_)X?;qsCu-ZS^-4EmjkQpF56+oJy7-R;B z2{Jo4EI!0B$lW!BVfE@@57&qp{1Ep&V`gB;>R@0@5@2995)fbj*_q0~!2C%;0Hl>6 zgMopGg@J*gih+UEhyfzz231$Xz`%M4D#j)P(QAgR4k`x|1G#YM>zpfV&YU2eFHR z!JC1B70Eo10~koL1Lhw-+;%u%vjdwSA#TF%e~27|vpyF0Ix;Y@!onHmKWQW}SU6}i zFtEbn9wr9zD@;raN4&!P2s0aG4$MB7Ig(iH1Nkut8V6ylko3nUh)CCPIW~wKC=H{> z1p@;E7rHtoa5@1;l|2Ik0|+x%Ffed|(k>`ZOoQ45QP*J4zyQKv_29S#rg>gc{2$YXOZj*wR6(BZD45S|B4wzjq_u%#e!+r(^ zFb3y+ka_5OL2-cY4v7CC{({DVJuD7DWgg57h&q_xAnHMB4rCrk9V`w&Y*-wC*dTX< zXplJ|8s>fw8)7CX{6QEs4nXoSy%2S%cEikr#Q{h?syc{zP#l2dKw%1UD=1uG;S8cd za=79ET|LY!kRL$t1JVnz6CCcK@Q0=+26kL}L2&@ni<-V6=^qlZ4B&hKG6Q4>%wDKn zP$dxmf#LvU9;i-x#s$d-AU&Wsfa!<%6J!oZ9nAe8HpEOw*hBIHLjx!upzDRGgIW#F zhYj{H^FVO`a|1*j#BGrL+F%chD^MJO)PdXwi(3#4atA05(B-hHhnWTP1I&#OJ3(m( zj6v}L!r*)WvJ0jMWEY4JiUT}l5y+G9vIu4eEZ;)y0;vH77r0CsYH@(>cQ!@=aN7(N z2k3I3I6xO$#tkp~!R09^OrhZdOaGwo2Vr(xdO_x5Z#OtNfa-ZrT?R52)?R?tn+(R# zb`MAnRG)!ph+Km`s6GRk2@?b5bx_>E#H^t8B1oQrfq@-K92}n@yFhXv`;p~9Vh}qR z!1iO8gV+zM_dw|xq#mRXWIs%d3u-?|9%ettVvxNc8dNWXh2GbAHhi)H84&)~Ewi`%4OwJHz zyRN~W5sw_qEg_<+I@R6c<00hO^J8s4Sv_$n79G7!7j6Pzew8@(<)M9QhX> z9-y!V`4yQ4=>vraNDP#AkZD+WAdA8DBkKc&KS&LX2Bi;BID*7r>S1Ps(g(U6G~U4Z v1(zJiEwJLWyz`zg#Vn8uS93&4CPlAepD3CZ4 z$Sh_ChTyRH0RLdm5Kn(U24{aC{~(4C*9d2S{~#BJ)&9Zmejqo1%mCS`0MZP_ATvNr zklDdu@ga^u?yeyWt5*kmxJKj%K-?$I!oZN#!N8a#z`$%IAiw~!GnIjX`ICYGNGn4I z0|OJtoGJzeRwD+8m>X1G4Fdz~A*dLe2t=q44%v;6> zQ76d2!0rTk3|1_o~i z2392VKn`Fa#SWN%_;B0dfXxnUeuTIQyZ<3_49@yk-0R4|zzPdznE#}a#9-l|&A`A4 zi+h+D$geOlEgbO*^CQe`Z01NJnGI79@*_O`aY51_a=M1gLDM0~T$n$Q+=mfAAal{x zLBq$Mfq{V?pIj0&O@y&R+_Q`uLR&B}aDmc3C{Im;$}vIGqdfyd1IS!>+5ov5q>haR zk`F*^S!mt?u|atTL_gz#@=VDSfH!{QIb2KgC8gUkWZFu#M?P&1+N$8dmw zf#Cow{y_3Dy-;-^dqEg%H_SX({DIU%)FI*yl-5A;2a*HD2gt3UaDc@Thz7~wia&Jq zNM^y)49E%d`$2&XvI|7R)QB=LFe1AJVh@8o$ekc{$aw-3 zN3d{)#t}4b9QHFXfG`6*j$nBP7U!e+gnx&vO{vq9=VXnq0pGVB=`7J%z@P@aIL2UvbVr~~Cb23Xn1 z1}ht%aiP}zF#YK136xi1dZ1>4>kLT!&(Hv>JJ9t))qyQ$V1U>SOP`>+1Jyj#x&u_l zfZ_&}#?k%G#t7+Cfa(r(Ic(}dZ6l~zT4|$IWRE5>JId_AFLe-(+6@VNFOo{DwkpUU~;(hfx-i% z21JAM1TKA`JOPt~nFa9!r0zhHL+QgHiG!TT0Mi3q zjaJmO00~mbX$e*DxxlO}CLtjCoC^03ov{*q)0m9I<<|;}pDJ{xV zC`v6Z%_&i^Q83gqnEXb=pU*(g)S9a-HQ7iZDX}n5&!mrZ+w@%~GdR&$oV7D|a zCqJ=70c5L!twM2Wl22+`YL0@Ig0Y@~H5WqCP{CFqIVUlJh3GbQKJ7s5C|~PC-|}2%EyvTm@SN1CT?COLG;pZ55I;i;{CvH9%nNRNS@k*R_f*u#ccRT-hFGQz6L7)_NiERpc%DdcA6 QX%v^{Lc(XWnD!zj09mE6x&QzG delta 546 zcmZpR*%8g}7VN>jaJmO00~jpb$e*FXSCp8NSz4^1WvgJIXJI|LOv6#lP5~weWmt0+ zrIwTyz-E zKG{Z7wmvNJ9YF3E8KuUePHIts1}J1zzyYBH UjX7AbYih!y6r_K1iuNKV0E>;7H~;_u diff --git a/src/game/compiled-shaders/spirv/frag.bin b/src/game/compiled-shaders/spirv/frag.bin index 8246dee449973de3563e5ea9aafb492bfa89efa8..41ad20b8b3df0b14562151ce36dd3f98a0dafdbf 100644 GIT binary patch literal 2798 zcmZ<@_TXMP-Gh+<3~q2SFfcPIvoo+UGH^3+Fa$7xg&71Hm>57xxEa{Mw7XBRk6v*} zik^w70Z0WO12c#M%keX?Gq5l)fN^eOW*$g_jgf&tn2~`&fPon-&d$KVz|6qRz{*#g~?WEMR3|1M5#pPpgP`D@sgvNi0b;U|?`(U;#OmL5_g| zY&VDxvIoQm*(=Pz!~pVwBG@(tFk6g)nSqUgfkAC0n7)v8N}y>@uZ<00RR9NDPEwdNROj92{W$ zVlbZp&Myb^8|)+)SQwTvFo4ZLcFPfnyn`qM3&UfmKR|J#z`(-5$_NPuklof$J}4Yv z@f5F83m>_-ysbhqO zu|E?7gBb%WINU+u3vxQht{)6c;JCMCU;+D&osj_?kLRI$2Sx@4kk|z%-wDbOU|JdgpDIv5!Ipkg39U}FAIF_8aZVgZZ{3?O~T>H?u+Aawx@?BMVTVuY9p zG6SRsq-F}#u24n>29P`m^DwZ1(@!`w>=hXp7(ni8g{qBWWMBZP2Vt043?l;rC>}w2 zU}ABM3=AM~kXSQRZ#*Ld14utej)#FAY)=Bz9t{Qt22lC~se!p62`VSgz`y`f2Qw!F z>IRTJC=5aABa@MV0Te$VIglGbV%dxg3?Ok(x&@gD63am{6C@7{$2>*`2ACX3KPXQX zGBPlL#6f8Yq#qb0#@}TLtjFEu>B$p4(dzFj~3?MO>U#b`x z7(nVl;xIL}P&F{K>!4=KGB7ZJK;p=H*FyDz@)At%dPW8Y zkT|m5jf@NoAaP{9o1uC^c@Cy`DRMfdS-R5bl8H*Y}JJ3?Q{2xg89w;JV@?BLf3S z929mdp=HG1~4;EGBPlL{0xc@m>YjEGBAMB53-+sA&J5C{$^xg0I3DZ z!Sw!xszdhkeD6RnU;wEF$-(q$L)9UNgD#R7Os^gj0|Q7cNDdYb`b-QAATvR7 zFm=XE3=AMQf-o!`OqduLKx#p9uy8PAVqgG?gZvB&2Xj!{0NRc~4u_kJ3=E*K0LjDZ tyxY)nL6w1l0VEGH2UbtFGBPlLiF2 literal 3058 zcmZ<@_TXMP-Gh+<4DN657xxEa{Mw7XBRk6v*} zik^w70Z0WO12c#M%keX?Gq5l)fN^eOW*$g_gOPzjl#zi!fPon-&d$KVz|6qRz{*#g~?WEMR3|1M5#pPpgP`D@sgvNi0b;U|?`(U||5MlVe~2 z+YRD_>;dsX_6jpFF@U_F2)2y@%obx{W?*ArU{GLSU=RoCXJ7#HL2d@|d7*reK5YgT zu$&qL1H;)fKK3FEOboUR3=A-Fdypkad0p>Hn`C(vwgB?sh4$Nn8fbk2! zdL*YhzyNY12*bp}m>3v9{sLi`yTd__VqkEA zsfl1>U;u>$2*bo8nHU&A{s&>0zGx-}2JY+1b}%(DObiU5FaTkgSS%9*11KCom=PLx zaZC&hW(=(0_yolpC>TKQ{=vWmPE)oFEMWI@GBSYE$9X8&wW%08#@I4`cwPItGRSs2Io&m{=fG3>20yu^>hU29Q2vb-_?Ekh%Z{c5qmSFha}( znE}!RQZof=S2!aB14tf(c^KHhX)h8QkBSTo3?TQlLe<7FGBAMDgD^}ij*)=@lqNuW zU}6c33=AM~kXSQRZz3ZD14utej)#FAY)=x@9t{Qt22i>Nse!p61u7@cz`y`f2Qw!N z>IRTJC=5YqEgNJX69WTC4&(-qSS}+214tZ{c0gu=#PX2L1j)m~v4D|*0VW6156Y{> zj0_AQaZow~=?96GLiL04I!GQSUJexprE8FyJZRpiU}Rtb$>l@ybTuOb14sbD4o1#WMBZ936g__38>BiiG#|YmC$_ll@U@G zfyyjU`Um+1r2ji3q$~r;|72i-hZQIsze4j)JQF0(fa)`ldQdpR?Aiehe^9)G!v7e^ z6VUJn$?XK?Sw;p1Q22w`AbUY^xd$5lpfV8_{`(ji7(n94;lH1efdM3r9R3Fx85ls~ z$l?E=k%0jujvW4sOb9Vp7&0+2Fo4v8zlfW(o*pO1-w0VIwd{sPdt1SAhL^C%+&11QWva-cW?g()cfKr}2) z5||)rK=A}p4+>kD{U@Mt0;*>~adHjhF=(8C1{x=zItdmh z=NK6nK;p=8a-NZa0VIwbCl?tR7(n94aU#LQzyK0QjuR;)F<7`tGchoL)Pm$-;V%nS z2XZ=0Odd%LrdNT9fdQlzBnR>bC`~IeF))D41j)g|M2(4o0VIwbC+bWL3?OmzIMIa0 z2}mAh=2b=p22hxTaxisvObiSlH-a!Mob8zy7(i-4a radius * radius; - return 1.0 - result; + float result = distSq / (radius * radius); + return result < 1.0; + // return clamp(1.0 - result, 0.0, 1.0); } float circles(vec2 uv, float level, float subLevel) { - vec2 offsetUv = uv + (0.5 + level * 0.5); - vec2 bigUv = (offsetUv % 1.0) - 0.5; - float base = 0.0; - if (subLevel > 0.25) - { - vec2 smallUv = (((offsetUv + 0.25) % 2.0) * 2.0) - 0.5; - base += circle(smallUv, 0.5); - } - if (subLevel > 0.5) - { - vec2 smallUv = (((offsetUv - 0.75) % 2.0) * 2.0) - 0.5; - base += circle(smallUv, 0.5); - } - if (subLevel > 0.75) - { - vec2 smallUv = (((offsetUv + 1.25) % 2.0) * 2.0) - 0.5; - base += circle(smallUv, 0.5); - } - base += circle(bigUv, lerp(0.25, 0.5, 1.0 - subLevel)); + vec2 offsetUv = uv + 0.5; + vec2 baseUv = (offsetUv % 1.0) - 0.5; + vec2 step1Uv = ((offsetUv + vec2(0.5, 0.5)) % 1.0) - 0.5; + vec2 step2Uv = ((offsetUv + vec2(0.5, 0.0)) % 1.0) - 0.5; + vec2 step3Uv = ((offsetUv + vec2(0.0, 0.5)) % 1.0) - 0.5; - return base; + float step = subLevel * 3.0; + float step1 = clamp(step, 0.0, 1.0); + float step2 = clamp(step - 1, 0.0, 1.0); + float step3 = clamp(step - 2, 0.0, 1.0); + + float sum = 0.0; + sum += circle(baseUv, lerp(0.5, 0.25, subLevel)); + sum += circle(step1Uv, 0.25 * step1); + sum += circle(step2Uv, 0.25 * step2); + sum += circle(step3Uv, 0.25 * step3); + + return min(sum, 1.0); } void main()