Why Procedural Terrain? • Large area exploration • Small details interest • Endless worlds (e.g. Minecraft) • Time saving for artists Procedural generation Artistic control
Overview 1. Polygonal Map: initial shape 2. Terrain Features: tune the terrain 3. Water Erosion: increase realism 4. Vegetation: add life
Perlin Noise The programmer’s friend
Fractal noise – sum of perlin noise
Step 1: : Polygonal Map
Voronoi diagram
Island shape Perlin noise + distance to the center
Elevation, Temperature, Moisture
Elevation, Temperature, Moisture
Elevation, Temperature, Moisture
Elevation, Temperature, Moisture
Create height map
Step 2: : Terrain Features
Feature Curves Interpolation between Control Points • Elevation • Plateau size • Slope size • Slope angle • Smoothing influence
Hills only elevation and smoothing, no slope
Hills only elevation and smoothing, no slope
Ridge lines 45° slope
Ridge lines 45° slope
Cliffs 90° slope at one side, long smoothing at the other side
Cliffs 90° slope at one side, long smoothing at the other side
Step 3: : Hydraulic Erosion
Pipe model Move water from one cell to another when the height is lower
Erosion Water erodes sediment on steep slopes Sediment is deposited on flat areas
Step 4: : Vegetation
Assign biomes • Texture • Grass density • Tree types
Grass quads with texture
Grass quads with texture
Grass quads with texture
Trees • Define trees recursively • Specify properties for every layer: • Radius, scaling • Curvature • Branching, splitting • Textures
Problem: too many polygons Use impostors for distant rendering
Thanks for your attention
Recommend
More recommend