Generalize tiles per chunk row

This commit is contained in:
2022-10-23 03:40:14 +02:00
parent 0694b1ef92
commit 9f64ebc0f9
2 changed files with 14 additions and 12 deletions
+12 -10
View File
@@ -128,28 +128,30 @@ fn main() {
flat out uint v_biome;
const uint TILE_SIZE = 4u;
const uint TILES_PER_CHUNK_ROW = 250u;
const uint TRIANGLES_PER_CHUNK_ROW = TILES_PER_CHUNK_ROW * 2u + 2u;
void main() {
uint index_mod_502 = index % 502u;
uint index_div_502 = index / 502u;
uint index_div_502_mod_2 = index_div_502 % 2u;
uint index_mod_502_div_2 = index_mod_502 / 2u;
uint index_mod_triangles_per_chunk_row = index % TRIANGLES_PER_CHUNK_ROW;
uint index_div_triangles_per_chunk_row = index / TRIANGLES_PER_CHUNK_ROW;
uint index_div_triangles_per_chunk_row_mod_2 = index_div_triangles_per_chunk_row % 2u;
uint index_mod_triangles_per_chunk_row_div_2 = index_mod_triangles_per_chunk_row / 2u;
uint x = index_div_502_mod_2 == 0u ? index_mod_502_div_2 : 250u - index_mod_502_div_2;
uint z = index_div_502 + index % 2u;
uint x = index_div_triangles_per_chunk_row_mod_2 == 0u ? index_mod_triangles_per_chunk_row_div_2 : TILES_PER_CHUNK_ROW - index_mod_triangles_per_chunk_row_div_2;
uint z = index_div_triangles_per_chunk_row + index % 2u;
switch (index % 4u) {
case 0u:
v_tex_coords = vec2(index_div_502_mod_2, 0);
v_tex_coords = vec2(index_div_triangles_per_chunk_row_mod_2, 0);
break;
case 1u:
v_tex_coords = vec2(index_div_502_mod_2, 1);
v_tex_coords = vec2(index_div_triangles_per_chunk_row_mod_2, 1);
break;
case 2u:
v_tex_coords = vec2(1u - index_div_502_mod_2, 0);
v_tex_coords = vec2(1u - index_div_triangles_per_chunk_row_mod_2, 0);
break;
default: // case 3u
v_tex_coords = vec2(1u - index_div_502_mod_2, 1);
v_tex_coords = vec2(1u - index_div_triangles_per_chunk_row_mod_2, 1);
break;
}
v_biome = biome;