Initial release v1.0.0 - Isometric Terrain Generator
- Procedural terrain generation using Perlin noise - OpenGL 3D rendering with isometric view - Biome-based coloring system (7 biomes) - Real-time camera controls (zoom, height adjustment) - Modular architecture with config/settings.py - Complete Italian documentation (8 chapters) - Interactive controls: R to regenerate, arrows for camera
This commit is contained in:
@@ -0,0 +1 @@
|
||||
"""Configuration package"""
|
||||
@@ -0,0 +1,89 @@
|
||||
"""
|
||||
Configuration settings for the Isometric Terrain Generator
|
||||
"""
|
||||
|
||||
# Window settings
|
||||
WINDOW_WIDTH = 1200
|
||||
WINDOW_HEIGHT = 800
|
||||
WINDOW_TITLE = "Isometric Terrain - RollerCoaster Tycoon Style"
|
||||
FPS = 60
|
||||
|
||||
# Terrain generation settings
|
||||
TERRAIN = {
|
||||
'grid_size': 20, # 20x20 matrix
|
||||
'tile_size': 1, # 1 tile per grid cell (so 20x20 tiles total)
|
||||
'tile_width': 30.0, # 30px tile width
|
||||
'tile_depth': 30.0, # 30px tile depth
|
||||
|
||||
# Perlin noise parameters
|
||||
'noise_scale': 8.0, # Smaller scale = more variation in small area
|
||||
'noise_octaves': 4,
|
||||
'noise_persistence': 0.6, # Higher = more detail from higher octaves
|
||||
'noise_lacunarity': 2.5, # Higher = more frequency increase per octave
|
||||
'noise_repeat_x': 1024,
|
||||
'noise_repeat_y': 1024,
|
||||
'noise_base': 42,
|
||||
|
||||
# Height scaling
|
||||
'height_multiplier': 80.0, # Multiplier for height variation
|
||||
'enable_smoothing': False, # Set to True for gentler terrain
|
||||
'smoothing_kernel_size': 3,
|
||||
}
|
||||
|
||||
# Camera settings
|
||||
CAMERA = {
|
||||
'initial_distance': 800.0,
|
||||
'initial_height': 450.0,
|
||||
'initial_angle': 45.0,
|
||||
|
||||
# Movement settings
|
||||
'zoom_speed': 10.0,
|
||||
'height_speed': 5.0,
|
||||
'min_distance': 200.0,
|
||||
'max_distance': 2000.0,
|
||||
|
||||
# Perspective settings
|
||||
'fov': 45, # Field of view
|
||||
'near_clip': 0.1,
|
||||
'far_clip': 5000.0,
|
||||
}
|
||||
|
||||
# Rendering settings
|
||||
RENDERING = {
|
||||
'background_color': (0.53, 0.81, 0.92, 1.0), # Sky blue
|
||||
|
||||
# Grid/wireframe settings
|
||||
'grid_line_width': 5.0,
|
||||
'grid_line_color': (0.0, 0.0, 0.0),
|
||||
|
||||
# Lighting settings
|
||||
'light_position': [1.0, 1.0, 1.0, 0.0],
|
||||
'light_ambient': [0.4, 0.4, 0.4, 1.0],
|
||||
'light_diffuse': [0.8, 0.8, 0.8, 1.0],
|
||||
|
||||
# Shading multipliers for side faces
|
||||
'side_face_shading': 0.7,
|
||||
'back_face_shading': 0.8,
|
||||
}
|
||||
|
||||
# Biome colors (RCT style)
|
||||
BIOME_COLORS = {
|
||||
'water': (0.2, 0.4, 0.8),
|
||||
'sand': (0.76, 0.7, 0.5),
|
||||
'grass_low': (0.2, 0.5, 0.2),
|
||||
'grass_mid': (0.25, 0.6, 0.25),
|
||||
'grass_high': (0.3, 0.65, 0.3),
|
||||
'rock': (0.5, 0.5, 0.5),
|
||||
'snow': (0.9, 0.9, 0.95)
|
||||
}
|
||||
|
||||
# Height thresholds for biomes
|
||||
BIOME_THRESHOLDS = {
|
||||
'water': 10.0,
|
||||
'sand': 20.0,
|
||||
'grass_low': 30.0,
|
||||
'grass_mid': 45.0,
|
||||
'grass_high': 60.0,
|
||||
'rock': 70.0,
|
||||
# snow is everything above rock
|
||||
}
|
||||
Reference in New Issue
Block a user