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;
+2 -2
View File
@@ -13,6 +13,8 @@ pub struct CameraState {
rotate_right: bool,
}
const SPEED: f32 = 1.0; //1.0;
impl CameraState {
pub fn new() -> CameraState {
CameraState {
@@ -118,8 +120,6 @@ impl CameraState {
s.0 * f.1 - s.1 * f.0,
);
const SPEED: f32 = 100.0; //1.0;
if self.moving_up {
self.position.0 += u.0 * SPEED;
self.position.1 += u.1 * SPEED;