From 5efe937168a657e9728d4ec08ea1d5b3dcaf31b4 Mon Sep 17 00:00:00 2001 From: Serkyo Date: Thu, 16 Jul 2026 00:05:30 +0200 Subject: [PATCH] feat(assets): apply per-chunk world offset in voxel vertex shader --- assets/shaders/cube.vert | 7 +++++-- assets/shaders/cube.vert.spv | Bin 1320 -> 1576 bytes 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/assets/shaders/cube.vert b/assets/shaders/cube.vert index 6e31124..b741b5d 100644 --- a/assets/shaders/cube.vert +++ b/assets/shaders/cube.vert @@ -8,10 +8,13 @@ layout(location = 0) out vec3 frag_color; layout(push_constant) uniform PushConstants { mat4 mvp; + vec4 chunk_offset; } push_constants; void main() { - gl_Position = push_constants.mvp * vec4(in_position, 1.0); - + // The chunk-local vertex is shifted into world space by the per-chunk offset before projection. + vec3 world_position = in_position + push_constants.chunk_offset.xyz; + gl_Position = push_constants.mvp * vec4(world_position, 1.0); + frag_color = in_color; } diff --git a/assets/shaders/cube.vert.spv b/assets/shaders/cube.vert.spv index 0b87b2284686937b56b490d5bbf617ba54c7404f..66f366693f646f3e1112b9f68dd65e965ec421e4 100644 GIT binary patch literal 1576 zcmZ9K%Wl&^6o#isotBoil+p`Oic7ec1{Q#j5H}U%E+QqU5?d>BoYum1EZZrU6+8m3 z#8a_B;{O~^8ZptyIsbpIbH?>rbIzC?m$7_G^gEaN?;#(a0ag>C9 zKgzSI&(>)!{$|PTgS={&2VICFHP}4a2F;A47lfyGl1 zgJF^vy`;#68>$G;IXz2-=Ss{ygOgG6*&hxDd0615#;SCx8h&tI1b$omaqM@)>{FN( z;aB1t6_1V24oDB;=~41gQXEC!wE=R*K6WSHK^&#;Bc=_)iI11SH;Utl&(XfwKZpDC z4uhTr38v1Px>93T70AQhkkycO zC7X)pK4AQ=@Vqn}0$z}&7Wid_?VRKiajb|oC*!Pg|@Zwp_SW0Jpu*b6<_#VrZEovSIEypPIZM|UJ}9LwF64M%^=-K#j}>1rD0zb_%5c>L`9 nm+InsAfY!g%*X!sB)lQ>F+Z3%JKJN~>>M9&0sgBgUP%4{W;A}V literal 1320 zcmZ9K-EPxB5QVo%otBoil+qudq$%O&0;%Ex5E24}3Njaw8dQl}D{@R($#pE-semh9 zfmhvpTZV$70RHyh@$sn@n?2{FPt&WD5Z!AV(-Po6!0 z3S-l>9TCo!x#srE`oA36j9^1{TlPTqP}bJ3CI4Fomd%<82T^!-77ji{ah^wI^*v3Z z)MiOEwnY+G_9}t5y1=tpoKDA!gg}hNo`JNktH(te4U^(?QdG$|g+gnbJ-JC~D?7=A zt~fq3INWB{x&5KeoT+nYR_-*l`FmSdqbyElIc|X5G)-r@KyxxX3q9NN!)f{Tbdqtp zDiwF68k}``l{?;!_PKabJSPUqaECUFa<3VTJN;6OF2qeI1$_c{$Ko}JF`;yD7wG?} zJbRY+9;@G&*Prt^1CRMUk3AUoO>Okowdb=0!r=Sa^ii1`|6zT_tWcGht?QyXX0FAU z?}iv{JL*QiWA#Q0`#tSC@;%wU>d}uFjl23^mG8+|Pnwu7m3oJY*W}@Yb+uzYUxOUh z6YsjbpZ`@8^TuHG*>t?RE`5l%WUK?l+yQmb)zvBP2aMV`<>?PbZDPI!F!HyWJ$z=| zmq#nU@^*K>SzJzm)w0`^;;l