From 5a76cdcd1361356d1c65e74bd78aba565e5a5ece Mon Sep 17 00:00:00 2001 From: catAngent Date: Fri, 20 Sep 2024 10:03:22 +0100 Subject: [PATCH] fix face orientation --- resources/images/tiles.png | Bin 1838 -> 1492 bytes resources/images/tiles.png.kra | Bin 32174 -> 32831 bytes resources/images/tiles.png.kra~ | Bin 0 -> 32174 bytes resources/images/tiles.png~ | Bin 2254 -> 1489 bytes src/main.zig | 2 +- src/world/chunk.zig | 108 +++++++++++++++++++++----------- 6 files changed, 71 insertions(+), 39 deletions(-) create mode 100644 resources/images/tiles.png.kra~ diff --git a/resources/images/tiles.png b/resources/images/tiles.png index 2198033f146d5cbf94476ce54c515bd554e1b078..1d9be0b89ce40328b71557779e06674072e46677 100644 GIT binary patch literal 1492 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz@VoL!i*J5?aLS# zSlc{Z978JN-rlzLJ8U4rkg)vKsYAY6>ket|U|JKiaQOqSGd+7fr@w2B&=BfU3NQS# zNThb+CX>p}zdO&D{oD1v&a-vt>s^_F>t1>HvuLf>vEzr=Y555-GVN!2Yt?YLa^B02Ci(T%!U`8+66PwJ#H;D-49SSg zWmj=n@Rldxjpfu2Kez8RW_|0@;4s7C4v&KRuMN*0dH>nqR+7N9m8nqnK!8&4|6AJx z-4$XK_Awj$YBygbEU-fK#?$A2mYVKY3yA7gm+Swh$DDQBQ>Ia%afjrA34b0h`Tj$H ziK6Tjhh7ICc7>nWx14wyud?3S%kky=viny;>Lq^0^Q{iQ#K|czLoCCZc}MB-_)ov( zg>Fo7xGm}MQf>Z|`yq$5c^Y*tEMtDL|CP7<0v3)tvmIvhB_yt`y}Df>z=Dy9g+oBW sp@CtPF&YS?DPc4h5XuGRnje_|E^=Mw7kD8PSWGi`y85}Sb4q9e0Epl%ga7~l literal 1838 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz@VoL!i*J5?aLS# z*dBPgIEGZjy}fnN>u>;r%f)TGzODcBzrIj^q8`gc4VB9NOLrdMa(RC4$urTt_wG%5 zTJ+%c=f_nKUY&lLT4`Uhw_DI5!M^eKKkwL12B!0V4@yHC);@1=KHe9&f6H$L0rdwg z0`d(%a+wbMG1wda`(AdxDk$T+vMp0Fr;p%)_w9EI>+?F_^&N;~x@^x>WB=#gpK9$Q zS*Fh%KB5in^>KyodJb?fU1oXkP(HA~TESrY0TISOUqAeoFxc)>?w+9C_>k$tv-?qv z@7*61vb1qOkV}2*TQA!fEJ@V!(j&np9Y3QPrLgV7;i8z zB{H!H=*5??a2#M0;1E`5DEPTZ*@3~V!C?jiW6NoASw^M}j4X#(I22;`z2FdN;8hS% zb6|M*$<@7qA%~&SfRTw~y1o??O9C@T3#Wj?j+%>t3JlVtR*VMJXo?!m7o!CTjY`@Y Z#=mbxrlbg#o&i>X44$rjF6*2UngFbAEX4o- diff --git a/resources/images/tiles.png.kra b/resources/images/tiles.png.kra index 2a1c535ce6e688b2ee7c3442b68ed48b516ae495..d842b237bc0b6a941bdec81f40a47abcfe9b91fd 100644 GIT binary patch delta 3149 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 delta 2669 zcmcguc{o&UA3n2Lrm;_rBF}~~V^56H@_gvRGzvtY)`<&;#&hK}h=Tyfa3x6Sm9Boi& zEU-Q#{d7`elwf+P>){g^SkYx1g1LRXdN{!~DaDcg-NqQ0`tYk{_~SND!$0Q?T}w@Kp9vHRy0@0PHZMDm zUoW}W)5c7@>`;(lTe>8DQLxIW{qs)b@EYk&s>F>IZM(C-c0bTnYG?@bN+@|;Ydq;p z?#*^SufP0iSC((ul-o?zvs*4t-pS`X=GH5V6=tk7k&hnkwsdOkWR^c+gHLlPE!~+; zv4wViVG(MiEiJF4i+{Ea!E~AdRW&|jf*GaMa&18x*X`2kUZ=iDWi(cJaPo^SJXhF= zpUgXcq!@{%kwIFV>B%DJ<}P2p__CW0wU2X}qzg+shBS-v`rZ~9tG@%)WIlZvM;`K# znUHGuE|@>Y;Y=I;_;o}YG&=2&FK(VTAF@*7T({W)_i^LE0o)M|sV>B@_vV!`y8lahDY>O`()@@DIzn=N%+3<7M zhC5&I<%tthX!j8Z=9iusLv=|%-|d=ka9+;WcRhp~Odl+9IlD-)C2{#uV=At8?)@2k zFp3pc9aHSre|f87c&=3reIx`{<1f#8R5H@pC4YSMV%jO$HIAK5wpsi+XRo{QjFCf> za}^$Z>>+l)s@}nwSE2YC0bz%|zPHB%%nK5;Zk})IK4MoDHTV22;aXfq&*8Y)7pFge zeBk_&K5um)!^VG?Sd6cEen+_SU%9@jmoh+v2&?15bL1?|{liYv$y(Wc={>m9tXUj} zlw_$<$D&jDze_VdNqw9h1oY&B{V z-MK2*^KJ6mP=t3l$M~Y`-_I^O46_f99n56mMUp|~>}AyE+KpD8OUdF^@*x2AV3a{5 zv4zd2GGe^ufOg8lD5TWmaFG_Y%%Eq~d-{%)&JXoEZ*mM4-!GyFqXxS2f!}StP)MDG z(FCnmeBaptnf_M#jRi}CDiyb<>g&u`Ay*(3n<7L%~JW zFaQi{f*wmA7+A}gMuQP(SOvIGB?2_6hY)uPV{~AQ5RCslA(q2v0LJUVC;&zq5dj#5 zhhq6vK@^~&yPiSe*V()bk3{_cpp^e=`k$BMidKYR>?J5tKoNmt#cer+Kym#G!8o(^ z$RY_*m3V-M_E}zR)#fE2l8`cMCqWZ66EEAjT|u`hvRbPNClKsV^pr~nKDdP+A0 z6|Kxn4u&5a?_&%9LBs)$Zu4u^RZX7KsaKv9Yz==i#5da&+FPEMIP~wg(RT?)$-lfs ziIbOW#uD}ySjE)HASa&qZCk-t)6d2Cm0S?e(1Ov$3qr)@QjA1Q>5TSLJ;n)3i>Nw3 zaC})ye6<)!#@rw0-!?9SV|sg`w~Jf)lL1IpFs`NqiLEJlDk&5Dnih^&;8Ycfv^iXL z5G_AStO7a#eZ++Q!#RO0ae)Z2Z)K5w3th-IDMWHjh~Ts)@)mLsbKk%F#vVQI(e0un z#uIP4s1ZjKv5nP#Dydsq3fVBPu4#T#%(f@ lO|oo*p>|N7M_PZS1S9~+aSz!|r1A5RaLf)q(~Ilqe*j)qVnqM| diff --git a/resources/images/tiles.png.kra~ b/resources/images/tiles.png.kra~ new file mode 100644 index 0000000000000000000000000000000000000000..2a1c535ce6e688b2ee7c3442b68ed48b516ae495 GIT binary patch literal 32174 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 C$Njee literal 0 HcmV?d00001 diff --git a/resources/images/tiles.png~ b/resources/images/tiles.png~ index 6711326c5bfeac0f5fd49b05e4683838b0a0c4a8..e2f924ea5dd29634704b8d978a5917573988a2d8 100644 GIT binary patch literal 1489 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz@VoL!i*J5?aLS# zSerdv978JN-rhdzd)PpP;lYwer&@ir+!9!qC9s}bb3o+HC0{L-cdR-ds!Fd;*!M4c zv3iR4m-pMR};`^(q+e)Ru+*okqrpZ<&k`^9!d zIlp~(pD*-i#m;*nM>&-o9(XT^XWwvl`b@j``}+6mb{Cs4GTmkQm&W1S&)M70bvNsc z3k!z~>#ws6&sOYLt@*XCWZ8m^90DA|9kUsixXj-cQqw7at;5e}L72ii<{4foui|f; zJ>qELK2px$_Wy%h2_w^1rrBH0&A)x=JWEmZw?m&V-cNSOweD0FP!cd_o-wI@-k0M~ z_fPm`p~=X^%48_p@I*g@sa?oozQh021Hs<4mrwlPU>lzsJCmVNo~bsS!8`wt>i*mP z2UfBCI>%6?|5N4vDyg_c4wc3_*@o%W?=+ai)i11P&RDUl{;TN&PF05n21X_p4grNx p#%Lgnri9U4Kp+=9NMf~P*mK84MZ4_5dSDsN;OXk;vd$@?2>?B#CrJPR literal 2254 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz@VoL!i*J5?aLS# zI2t@%978JN-rfq#3T6~>4V-MXmG9s|E8YLzOOhOyaQT)$n49u*{_C^5^ml7k?W(bl zpSN#s&CYMAn_{RIdzw`g!lK(HvTPqXu8xAzG<_R_Iw|}zlo%|2Z4Y!=R z@B9gG*v`Ly{vZCob1FZxi|)u|sQJNPRhljML$_cv!;cTu$2er-AE+_@xZZw$J>&6u zg`6J|OqC3Op46{lKe79+*a_wjr#{~E|8?Eq$MuG{?MJ_TSD(Os;QF86)gF5m{}$bG z@;`G$zqiD@?~0$!m9cJO_))e0x4?}*g{+_A8Re#5vR2=qUSJhJ@9&3uyJz=usxa+i zROx9GxFI6YaCZ02Sq@4H44jJ yt - 30) 1 else 2); }; if (benchmark_chunk_meshing) { diff --git a/src/world/chunk.zig b/src/world/chunk.zig index aa3c9f5..1b6d3d8 100644 --- a/src/world/chunk.zig +++ b/src/world/chunk.zig @@ -95,16 +95,48 @@ pub const Chunk = struct { const zmax: f32 = @as(f32, @floatFromInt(z2)) + 0.5; const yleft: f32 = if (sign == 1) ymin else ymax; const yright: f32 = if (sign == 1) ymax else ymin; - const raw_quad: RawQuad = .{ - .tile = surface, - .top_left = v3.newShifted(xf + 0.5 * sign, yleft, zmin, d), - .top_right = v3.newShifted(xf + 0.5 * sign, yright, zmin, d), - .bottom_left = v3.newShifted(xf + 0.5 * sign, yleft, zmax, d), - .bottom_right = v3.newShifted(xf + 0.5 * sign, yright, zmax, d), - .normal = v3.newShifted(sign, 0, 0, d), - .width = ymax - ymin, - .height = zmax - zmin, - }; + const zleft: f32 = if (sign == 1) zmin else zmax; + const zright: f32 = if (sign == 1) zmax else zmin; + var raw_quad: RawQuad = undefined; + switch (d) { + 0 => { + raw_quad = .{ + .tile = surface, + .top_left = v3.new(xf + 0.5 * sign, ymax, zright), + .top_right = v3.new(xf + 0.5 * sign, ymax, zleft), + .bottom_left = v3.new(xf + 0.5 * sign, ymin, zright), + .bottom_right = v3.new(xf + 0.5 * sign, ymin, zleft), + .normal = v3.new(sign, 0, 0), + .width = zmax - zmin, + .height = ymax - ymin, + }; + }, + 1 => { + raw_quad = .{ + .tile = surface, + .bottom_left = v3.new(yleft, zmin, xf + 0.5 * sign), + .top_left = v3.new(yleft, zmax, xf + 0.5 * sign), + .bottom_right = v3.new(yright, zmin, xf + 0.5 * sign), + .top_right = v3.new(yright, zmax, xf + 0.5 * sign), + .normal = v3.new(0, 0, sign), + .height = zmax - zmin, + .width = ymax - ymin, + }; + }, + 2 => { + raw_quad = .{ + .tile = surface, + .top_left = v3.new(zleft, xf + 0.5 * sign, ymin), + .top_right = v3.new(zright, xf + 0.5 * sign, ymin), + .bottom_left = v3.new(zleft, xf + 0.5 * sign, ymax), + .bottom_right = v3.new(zright, xf + 0.5 * sign, ymax), + .normal = v3.new(0, sign, 0), + .width = zmax - zmin, + .height = ymax - ymin, + }; + }, + else => unreachable, + } try raw_quads.append(raw_quad); }; } @@ -143,21 +175,21 @@ pub const Chunk = struct { texcoords2[12 * i + 0] = 0.0; texcoords2[12 * i + 1] = 0.0; - vertices[18 * i + 3] = raw_quad.top_right.x; - vertices[18 * i + 4] = raw_quad.top_right.y; - vertices[18 * i + 5] = raw_quad.top_right.z; - texcoords[12 * i + 2] = right_uv; - texcoords[12 * i + 3] = top_uv; - texcoords2[12 * i + 2] = raw_quad.width; - texcoords2[12 * i + 3] = 0.0; + vertices[18 * i + 3] = raw_quad.bottom_left.x; + vertices[18 * i + 4] = raw_quad.bottom_left.y; + vertices[18 * i + 5] = raw_quad.bottom_left.z; + texcoords[12 * i + 2] = left_uv; + texcoords[12 * i + 3] = bottom_uv; + texcoords2[12 * i + 2] = 0.0; + texcoords2[12 * i + 3] = raw_quad.height; - vertices[18 * i + 6] = raw_quad.bottom_left.x; - vertices[18 * i + 7] = raw_quad.bottom_left.y; - vertices[18 * i + 8] = raw_quad.bottom_left.z; - texcoords[12 * i + 4] = left_uv; - texcoords[12 * i + 5] = bottom_uv; - texcoords2[12 * i + 4] = 0.0; - texcoords2[12 * i + 5] = raw_quad.height; + vertices[18 * i + 6] = raw_quad.top_right.x; + vertices[18 * i + 7] = raw_quad.top_right.y; + vertices[18 * i + 8] = raw_quad.top_right.z; + texcoords[12 * i + 4] = right_uv; + texcoords[12 * i + 5] = top_uv; + texcoords2[12 * i + 4] = raw_quad.width; + texcoords2[12 * i + 5] = 0.0; vertices[18 * i + 9] = raw_quad.bottom_right.x; vertices[18 * i + 10] = raw_quad.bottom_right.y; @@ -167,21 +199,21 @@ pub const Chunk = struct { texcoords2[12 * i + 6] = raw_quad.width; texcoords2[12 * i + 7] = raw_quad.height; - vertices[18 * i + 12] = raw_quad.bottom_left.x; - vertices[18 * i + 13] = raw_quad.bottom_left.y; - vertices[18 * i + 14] = raw_quad.bottom_left.z; - texcoords[12 * i + 8] = left_uv; - texcoords[12 * i + 9] = bottom_uv; - texcoords2[12 * i + 8] = 0.0; - texcoords2[12 * i + 9] = raw_quad.height; + vertices[18 * i + 12] = raw_quad.top_right.x; + vertices[18 * i + 13] = raw_quad.top_right.y; + vertices[18 * i + 14] = raw_quad.top_right.z; + texcoords[12 * i + 8] = right_uv; + texcoords[12 * i + 9] = top_uv; + texcoords2[12 * i + 8] = raw_quad.width; + texcoords2[12 * i + 9] = 0.0; - vertices[18 * i + 15] = raw_quad.top_right.x; - vertices[18 * i + 16] = raw_quad.top_right.y; - vertices[18 * i + 17] = raw_quad.top_right.z; - texcoords[12 * i + 10] = right_uv; - texcoords[12 * i + 11] = top_uv; - texcoords2[12 * i + 10] = raw_quad.width; - texcoords2[12 * i + 11] = 0.0; + vertices[18 * i + 15] = raw_quad.bottom_left.x; + vertices[18 * i + 16] = raw_quad.bottom_left.y; + vertices[18 * i + 17] = raw_quad.bottom_left.z; + texcoords[12 * i + 10] = left_uv; + texcoords[12 * i + 11] = bottom_uv; + texcoords2[12 * i + 10] = 0.0; + texcoords2[12 * i + 11] = raw_quad.height; } var mesh = raylib.Mesh{