feat(world-gen): rescale biome relief and snow line for 512-tall world

This commit is contained in:
MDietermann
2026-06-03 07:49:34 +02:00
parent 3c7e7a46a3
commit 715444d10a
6 changed files with 15 additions and 15 deletions

View File

@@ -18,8 +18,8 @@ public sealed class DesertBiome : IBiome
}
public float SampleHeight(NoiseSource noise, float worldX, float worldZ)
=> WorldConstants.SeaLevel + 4f * noise.Continent(worldX, worldZ)
+ 1.5f * this._detail.GetNoise(worldX, worldZ);
=> WorldConstants.SeaLevel + 16f * noise.Continent(worldX, worldZ)
+ 6f * this._detail.GetNoise(worldX, worldZ);
public IBlock TopBlock(int worldY) => this.Surface.Top;
}

View File

@@ -18,8 +18,8 @@ public sealed class ForestBiome : IBiome
}
public float SampleHeight(NoiseSource noise, float worldX, float worldZ)
=> WorldConstants.SeaLevel + 6f * noise.Continent(worldX, worldZ)
+ 4f * this._detail.GetNoise(worldX, worldZ);
=> WorldConstants.SeaLevel + 24f * noise.Continent(worldX, worldZ)
+ 16f * this._detail.GetNoise(worldX, worldZ);
public IBlock TopBlock(int worldY) => this.Surface.Top;
}

View File

@@ -4,7 +4,7 @@ namespace VoxelEngine.World.WorldGen.Biomes;
public sealed class MountainsBiome : IBiome
{
private const int SnowLine = 96;
private const int SnowLine = 384;
private readonly FastNoiseLite _ridged;
private readonly IBlock _stone;
private readonly IBlock _snow;
@@ -25,8 +25,8 @@ public sealed class MountainsBiome : IBiome
}
public float SampleHeight(NoiseSource noise, float worldX, float worldZ)
=> WorldConstants.SeaLevel + 10f * noise.Continent(worldX, worldZ)
+ 45f * this._ridged.GetNoise(worldX, worldZ);
=> WorldConstants.SeaLevel + 40f * noise.Continent(worldX, worldZ)
+ 200f * this._ridged.GetNoise(worldX, worldZ);
public IBlock TopBlock(int worldY) => worldY >= MountainsBiome.SnowLine ? this._snow : this._stone;
}

View File

@@ -18,8 +18,8 @@ public sealed class PlainsBiome : IBiome
}
public float SampleHeight(NoiseSource noise, float worldX, float worldZ)
=> WorldConstants.SeaLevel + 6f * noise.Continent(worldX, worldZ)
+ 2f * this._detail.GetNoise(worldX, worldZ);
=> WorldConstants.SeaLevel + 24f * noise.Continent(worldX, worldZ)
+ 8f * this._detail.GetNoise(worldX, worldZ);
public IBlock TopBlock(int worldY) => this.Surface.Top;
}