Generalize tiles per chunk row
This commit is contained in:
+12
-10
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user