diff --git a/engine/world_generation/src/heightmap.rs b/engine/world_generation/src/heightmap.rs index 16bf2f3..c8a6593 100644 --- a/engine/world_generation/src/heightmap.rs +++ b/engine/world_generation/src/heightmap.rs @@ -62,7 +62,18 @@ fn sample_point(x: f64, z: f64, cfg: &GenerationConfig, noise: &SuperSimplex) -> } } - return (elevation as f32); + let outer = cfg.size.as_vec2() * Chunk::SIZE as f32; + + let p = Vec2::new(x as f32, z as f32); + let d1 = p.x.min(p.y); + let od = outer - p; + let d2 = od.x.min(od.y); + let d = d1 + .min(d2) + .min(cfg.border_size) + .remap(0., cfg.border_size, 0., 1.); + + return (elevation as f32) * d; } fn mask(mask: f64, value: f64, sea_level: f64) -> f64 { diff --git a/game/main/src/phos.rs b/game/main/src/phos.rs index c805fd3..2e8f823 100644 --- a/game/main/src/phos.rs +++ b/game/main/src/phos.rs @@ -132,7 +132,7 @@ fn create_map( ], noise_scale: 350., sea_level: 4., - border_size: 16., + border_size: 64., size: (32, 32).into(), }, 2,