# Advanced Procedural Generation Parameters Guide ## Research-Based Parameter Tuning (2024) This guide provides comprehensive parameter tuning for realistic procedural terrain generation based on latest research and industry best practices. --- ## 1. Perlin Noise Parameters (Base Terrain) ### Core Parameters **Octaves** (Number of noise layers) - **Range:** 1-10 - **Low (1-3):** Smooth, rolling hills, gentle terrain - **Medium (4-6):** Balanced detail, realistic mountains - **High (7-10):** Extreme detail, rocky/jagged terrain - **Recommended:** 6 for realistic terrain - **Performance:** Each octave doubles computation time **Persistence** (Amplitude multiplier per octave) - **Range:** 0.0-1.0 - **Low (0.3-0.4):** Smooth terrain, gentle slopes - **Medium (0.5-0.6):** Balanced, realistic terrain - **High (0.7-0.9):** Rough, mountainous terrain - **Recommended:** 0.5 for balanced terrain - **Formula:** `amplitude *= persistence` per octave **Lacunarity** (Frequency multiplier per octave) - **Range:** 1.5-3.0 - **Low (1.5-1.8):** Gradual detail increase, smooth transitions - **Medium (2.0-2.2):** Standard detail progression - **High (2.5-3.0):** Rapid detail increase, sharp features - **Recommended:** 2.0 for natural terrain - **Formula:** `frequency *= lacunarity` per octave **Scale** (Base frequency) - **Range:** 10.0-500.0 - **Low (10-50):** Large features, continental scale - **Medium (50-150):** Regional scale, valleys and mountains - **High (150-500):** Local scale, small hills - **Recommended:** 100.0 for balanced terrain - **Effect:** Lower scale = larger features **Amplitude** (Initial height multiplier) - **Range:** 0.5-2.0 - **Low (0.5-0.8):** Subtle elevation changes - **Medium (1.0-1.2):** Moderate elevation - **High (1.5-2.0):** Extreme elevation differences - **Recommended:** 1.0 for normalized output ### Advanced Noise Techniques **Domain Warping** (Distortion for organic shapes) - **Strength:** 0.0-50.0 - 0-5: Subtle warping, slight organic feel - 5-20: Moderate warping, natural terrain - 20-50: Extreme warping, alien/fantasy terrain - **Size:** 0.1-2.0 - Small (0.1-0.5): Fine-grained distortion - Medium (0.5-1.0): Balanced distortion - Large (1.0-2.0): Large-scale warping - **Formula:** `noise(x + strength * noise(size * x, size * y), y + strength * noise(size * x, size * y))` - **Use Case:** Creates more organic, less grid-like terrain **Ridged Noise** (Mountain ridges) - **Formula:** `1.0 - abs(noise(x, y))` - **Effect:** Creates sharp ridges and valleys - **Use Case:** Mountain ranges, canyon systems **Billowy Noise** (Cloud-like formations) - **Formula:** `abs(noise(x, y))` - **Effect:** Creates rounded, billowy shapes - **Use Case:** Hills, dunes, cloud patterns --- ## 2. Hydraulic Erosion Parameters ### Research-Validated Settings (2024) **Iterations** - **Range:** 50-500 - **Fast (50-100):** Quick erosion, subtle effects - **Balanced (100-200):** Realistic erosion, visible rivers - **Detailed (200-500):** Deep valleys, complex drainage - **Recommended:** 100 iterations (research: 10x faster with tuned constants) - **Performance:** Linear scaling with iterations **Rain Amount** (Water per droplet) - **Range:** 0.5-2.0 - **Low (0.5-0.8):** Gentle erosion, subtle valleys - **Medium (1.0-1.2):** Balanced erosion - **High (1.5-2.0):** Aggressive erosion, deep canyons - **Recommended:** 1.0 **Evaporation Rate** - **Range:** 0.001-0.1 - **Low (0.001-0.005):** Water travels far, long rivers - **Medium (0.01-0.03):** Balanced flow distance - **High (0.05-0.1):** Short rivers, quick evaporation - **Recommended:** 0.01 (research: 10x increase for faster convergence) - **Effect:** Higher = faster convergence, fewer iterations needed **Erosion Rate** (Terrain removal) - **Range:** 0.1-0.5 - **Low (0.1-0.2):** Subtle erosion, gentle valleys - **Medium (0.3-0.4):** Visible erosion, realistic valleys - **High (0.4-0.5):** Aggressive erosion, deep canyons - **Recommended:** 0.3 - **Balance:** Higher erosion = more dramatic terrain changes **Deposition Rate** (Sediment placement) - **Range:** 0.05-0.3 - **Low (0.05-0.1):** Minimal sediment buildup - **Medium (0.1-0.2):** Balanced deposition - **High (0.2-0.3):** Heavy sediment, alluvial fans - **Recommended:** 0.1 - **Effect:** Creates sediment deposits at river mouths **Min Slope** (Flow threshold) - **Range:** 0.001-0.05 - **Low (0.001-0.005):** Water flows on flat terrain - **Medium (0.01-0.02):** Balanced flow - **High (0.03-0.05):** Water only flows on steep slopes - **Recommended:** 0.01 **Gravity** (Flow acceleration) - **Range:** 1.0-10.0 - **Low (1.0-3.0):** Slow water flow - **Medium (4.0-6.0):** Realistic flow speed - **High (7.0-10.0):** Fast, aggressive flow - **Recommended:** 4.0 --- ## 3. Thermal Erosion Parameters ### Talus Angle-Based Material Movement **Iterations** - **Range:** 20-100 - **Fast (20-30):** Subtle smoothing - **Balanced (40-60):** Realistic slope stabilization - **Detailed (70-100):** Smooth, stable slopes - **Recommended:** 50 iterations **Talus Angle** (Critical slope angle in radians) - **Range:** 0.3-1.2 radians (17-69 degrees) - **Low (0.3-0.5):** Very stable, gentle slopes (sand dunes) - **Medium (0.6-0.8):** Realistic rock slopes (mountains) - **High (0.9-1.2):** Steep cliffs, unstable terrain - **Recommended:** 0.7 radians (~40 degrees) - **Real-World:** Loose sand ~30°, rock ~35-45°, solid rock ~60-70° **Material Transfer Rate** - **Range:** 0.1-0.8 - **Low (0.1-0.3):** Slow material movement - **Medium (0.4-0.6):** Balanced transfer - **High (0.7-0.8):** Rapid material redistribution - **Recommended:** 0.5 --- ## 4. Climate Simulation Parameters ### Temperature Map **Latitude Influence** - **Range:** 0.0-1.0 - **Low (0.2-0.4):** Minimal temperature variation by latitude - **Medium (0.5-0.7):** Realistic Earth-like gradient - **High (0.8-1.0):** Extreme polar/equatorial difference - **Recommended:** 0.6 - **Formula:** `temperature = 1.0 - (latitude * lat_influence + elevation * elev_influence)` **Elevation Influence** - **Range:** 0.0-1.0 - **Low (0.2-0.3):** Minimal cooling with altitude - **Medium (0.4-0.5):** Realistic lapse rate (~6.5°C per 1000m) - **High (0.6-0.8):** Extreme altitude cooling - **Recommended:** 0.4 - **Real-World:** Temperature drops ~6.5°C per 1000m elevation ### Rainfall Map **Water Proximity Influence** - **Range:** 0.0-1.0 - **Low (0.2-0.3):** Minimal coastal rainfall boost - **Medium (0.4-0.5):** Realistic coastal effect - **High (0.6-0.8):** Strong maritime influence - **Recommended:** 0.4 **Orographic Effect** (Mountain rainfall) - **Range:** 0.0-1.0 - **Low (0.1-0.2):** Minimal rain shadow - **Medium (0.3-0.4):** Realistic orographic precipitation - **High (0.5-0.7):** Strong rain shadow effect - **Recommended:** 0.3 - **Real-World:** Windward slopes get 2-10x more rain than leeward **Base Rainfall** - **Range:** 0.0-1.0 - **Arid (0.1-0.3):** Desert world - **Moderate (0.4-0.6):** Earth-like - **Wet (0.7-0.9):** Tropical world - **Recommended:** 0.5 --- ## 5. Biome Classification (Whittaker Diagram) ### Temperature Thresholds **Tundra:** temp < 0.2 (cold) **Taiga:** temp 0.2-0.4 (cool) **Temperate:** temp 0.4-0.7 (moderate) **Tropical:** temp > 0.7 (hot) ### Precipitation Thresholds **Desert:** rain < 0.2 (arid) **Grassland:** rain 0.2-0.5 (semi-arid) **Forest:** rain 0.5-0.7 (humid) **Rainforest:** rain > 0.7 (very humid) ### Elevation Overrides **Alpine:** elevation > 0.7 (high altitude) **Coastal:** distance_to_water < 10 cells **Wetland:** elevation < 0.3 AND near water ### Biome Transition Smoothing **Gaussian Blur Sigma** - **Range:** 0.5-5.0 - **Sharp (0.5-1.0):** Distinct biome boundaries - **Smooth (2.0-3.0):** Gradual transitions - **Very Smooth (4.0-5.0):** Blended biomes - **Recommended:** 2.0 --- ## 6. Vegetation Distribution Parameters ### Density Calculation **Formula:** `density = rainfall * (1 - abs(temperature - 0.5) * 2)` **Factors:** - **Rainfall:** Primary driver (more rain = more vegetation) - **Temperature:** Optimal at moderate temps (0.5) - **Elevation:** Reduces density at high altitudes - **Slope:** Reduces density on steep slopes **Density Thresholds:** - **Sparse (0.0-0.3):** Desert, tundra, alpine - **Moderate (0.3-0.6):** Grassland, savanna - **Dense (0.6-0.8):** Temperate forest - **Very Dense (0.8-1.0):** Tropical rainforest ### Tree Placement **Spacing (based on density)** - **Sparse:** 20-50m between trees - **Moderate:** 10-20m between trees - **Dense:** 5-10m between trees - **Very Dense:** 2-5m between trees **Size Variation** - **Min Scale:** 0.7 - **Max Scale:** 1.3 - **Formula:** `scale = 0.7 + random() * 0.6` --- ## 7. River Network Parameters ### Flow Accumulation Threshold **River Formation Threshold** (percentile of flow) - **Sparse (90-93%):** Few major rivers - **Moderate (93-95%):** Realistic river density - **Dense (95-97%):** Many small streams - **Very Dense (97-99%):** Creek networks - **Recommended:** 95th percentile **River Width** (based on flow accumulation) - **Formula:** `width = sqrt(flow_accumulation) * scale_factor` - **Scale Factor:** 0.1-0.5 - Small (0.1-0.2): Narrow streams - Medium (0.2-0.3): Realistic rivers - Large (0.3-0.5): Wide rivers **River Smoothing** - **Gaussian Sigma:** 0.5-2.0 - Low (0.5-1.0): Natural, meandering rivers - High (1.5-2.0): Smooth, artificial-looking rivers - **Recommended:** 1.0 --- ## 8. Preset Configurations ### Realistic Earth-Like Terrain ```python { 'octaves': 6, 'persistence': 0.5, 'lacunarity': 2.0, 'scale': 100.0, 'hydraulic_iterations': 100, 'thermal_iterations': 50, 'talus_angle': 0.7, 'latitude_influence': 0.6, 'elevation_influence': 0.4, 'river_threshold': 95 } ``` ### Mountainous Terrain ```python { 'octaves': 7, 'persistence': 0.6, 'lacunarity': 2.2, 'scale': 80.0, 'hydraulic_iterations': 150, 'thermal_iterations': 60, 'talus_angle': 0.8, 'latitude_influence': 0.5, 'elevation_influence': 0.5, 'river_threshold': 96 } ``` ### Rolling Hills ```python { 'octaves': 4, 'persistence': 0.4, 'lacunarity': 1.8, 'scale': 150.0, 'hydraulic_iterations': 80, 'thermal_iterations': 40, 'talus_angle': 0.6, 'latitude_influence': 0.6, 'elevation_influence': 0.3, 'river_threshold': 94 } ``` ### Desert World ```python { 'octaves': 5, 'persistence': 0.45, 'lacunarity': 2.0, 'scale': 120.0, 'hydraulic_iterations': 50, 'thermal_iterations': 70, 'talus_angle': 0.5, # Sand dunes 'latitude_influence': 0.7, 'base_rainfall': 0.2, # Arid 'river_threshold': 97 # Few rivers } ``` ### Tropical Rainforest World ```python { 'octaves': 6, 'persistence': 0.5, 'lacunarity': 2.0, 'scale': 100.0, 'hydraulic_iterations': 120, 'thermal_iterations': 40, 'talus_angle': 0.7, 'latitude_influence': 0.4, # Warm everywhere 'base_rainfall': 0.8, # Very wet 'river_threshold': 93 # Many rivers } ``` ### Alien/Fantasy Terrain ```python { 'octaves': 8, 'persistence': 0.7, 'lacunarity': 2.5, 'scale': 60.0, 'domain_warp_strength': 30.0, # Extreme warping 'hydraulic_iterations': 80, 'thermal_iterations': 30, 'talus_angle': 0.9, # Steep cliffs 'latitude_influence': 0.3, 'river_threshold': 95 } ``` --- ## 9. Performance vs Quality Trade-offs ### Fast Generation (Preview) - Octaves: 4 - Hydraulic iterations: 50 - Thermal iterations: 20 - Resolution: 256x256 - **Time:** ~5 seconds ### Balanced (Production) - Octaves: 6 - Hydraulic iterations: 100 - Thermal iterations: 50 - Resolution: 512x512 - **Time:** ~30 seconds ### High Quality (Hero Assets) - Octaves: 8 - Hydraulic iterations: 200 - Thermal iterations: 80 - Resolution: 1024x1024 - **Time:** ~3 minutes ### Ultra Quality (Cinematic) - Octaves: 10 - Hydraulic iterations: 500 - Thermal iterations: 100 - Resolution: 2048x2048 - **Time:** ~15 minutes --- ## 10. Common Issues & Solutions ### Issue: Terrain too smooth/boring **Solution:** Increase octaves (6-8), increase persistence (0.6-0.7) ### Issue: Terrain too noisy/chaotic **Solution:** Decrease octaves (4-5), decrease persistence (0.4-0.5) ### Issue: No visible rivers **Solution:** Increase hydraulic iterations (150-200), lower river threshold (92-94%) ### Issue: Rivers too straight **Solution:** Decrease river smoothing sigma (0.5-1.0), add domain warping ### Issue: Unrealistic biome distribution **Solution:** Adjust temperature/rainfall influences, smooth biome transitions (sigma 2.0-3.0) ### Issue: Cliffs too steep/unstable **Solution:** Increase thermal iterations (60-80), decrease talus angle (0.6-0.7) ### Issue: Terrain too flat **Solution:** Increase amplitude (1.5-2.0), decrease scale (50-80) ### Issue: Generation too slow **Solution:** Reduce resolution, decrease iterations, use fewer octaves --- ## 11. Research References - **Hydraulic Erosion:** "Fast Hydraulic Erosion Simulation" (2024) - **Thermal Erosion:** "Terrain Erosion on GPU" (Axel Paris, 2024) - **Domain Warping:** Inigo Quilez (iquilezles.org) - **Biome Classification:** Whittaker Diagram (1975), AutoBiomes (2020) - **Perlin Noise:** Ken Perlin (1985), Improved Perlin Noise (2002) --- **Token Usage: 120K/200K (60%)**