Slightly tweak world gen and rendering
696b65f956979962f4c70a116efff4fd087b8d13
This commit is contained in:
parent
7d1566afd7
commit
a58e7a2c2d
2 changed files with 6 additions and 5 deletions
|
@ -377,7 +377,7 @@ impl World {
|
||||||
let random_noise =
|
let random_noise =
|
||||||
self.random_noise_from_polar_coordinates(alpha, beta, RADIUS, offset)?;
|
self.random_noise_from_polar_coordinates(alpha, beta, RADIUS, offset)?;
|
||||||
|
|
||||||
let latitude_factor = (alpha * 0.9) + (random_noise * 0.2 * PI) - 0.1;
|
let latitude_factor = alpha + (random_noise * 2.0 - 1.0) * PI * 0.1;
|
||||||
let latitude_modifier_1 = (1.5 * f32::sin(latitude_factor)) - 0.5;
|
let latitude_modifier_1 = (1.5 * f32::sin(latitude_factor)) - 0.5;
|
||||||
let latitude_modifier_2 = f32::cos(latitude_factor);
|
let latitude_modifier_2 = f32::cos(latitude_factor);
|
||||||
|
|
||||||
|
@ -395,13 +395,14 @@ impl World {
|
||||||
let offset_altitude_2 = f32::max(0.0, offset_cell_2.altitude);
|
let offset_altitude_2 = f32::max(0.0, offset_cell_2.altitude);
|
||||||
|
|
||||||
let cell = &mut self.terrain[y][x];
|
let cell = &mut self.terrain[y][x];
|
||||||
let altitude = f32::max(0.0, cell.altitude);
|
let altitude_value = f32::max(0.0, cell.altitude);
|
||||||
|
|
||||||
let altitude_modifier =
|
let altitude_modifier =
|
||||||
(altitude - (offset_altitude * 1.5) - (offset_altitude_2 * 1.5))
|
(altitude_value - (offset_altitude * 1.5) - (offset_altitude_2))
|
||||||
/ World::MAX_ALTITUDE;
|
/ World::MAX_ALTITUDE;
|
||||||
|
|
||||||
let rainfall_value = mix_values(latitude_modifier_1, altitude_modifier, 0.63);
|
let rainfall_value = mix_values(latitude_modifier_1, altitude_modifier, 0.63);
|
||||||
|
let rainfall_value = mix_values(rainfall_value.powi(2), rainfall_value, 0.85);
|
||||||
let rainfall = f32::min(
|
let rainfall = f32::min(
|
||||||
World::MAX_RAINFALL,
|
World::MAX_RAINFALL,
|
||||||
World::calculate_rainfall(rainfall_value),
|
World::calculate_rainfall(rainfall_value),
|
||||||
|
|
|
@ -151,9 +151,9 @@ fn coastline_color(world: &World, cell: &TerrainCell) -> Color {
|
||||||
} else if cell.altitude > 0.0 {
|
} else if cell.altitude > 0.0 {
|
||||||
let slant = world.get_slant(cell);
|
let slant = world.get_slant(cell);
|
||||||
let altitude_span = world.max_altitude - world.min_altitude;
|
let altitude_span = world.max_altitude - world.min_altitude;
|
||||||
let slant_factor = f32::min(1.0, -(500.0 * (slant / altitude_span)));
|
let slant_factor = f32::min(1.0, -(20.0 * (slant / altitude_span)));
|
||||||
|
|
||||||
if slant_factor > 0.9 {
|
if slant_factor > 0.1 {
|
||||||
COASTLINE_PALETTE[4] * slant_factor + COASTLINE_PALETTE[1] * (1.0 - slant_factor)
|
COASTLINE_PALETTE[4] * slant_factor + COASTLINE_PALETTE[1] * (1.0 - slant_factor)
|
||||||
} else {
|
} else {
|
||||||
COASTLINE_PALETTE[1]
|
COASTLINE_PALETTE[1]
|
||||||
|
|
Loading…
Reference in a new issue