A Unity-based project to generate breathtaking procedural planets, combining dynamic mesh generation, realistic terrain shaping, and customizable biome-based color systems.
- Dynamic Planet Generation
- Procedurally generate planets with varied terrains and colors based on defined settings.
- Biome System
- A fully customizable biome system allowing gradient-based textures, tinting, and noise-based blending for realistic transitions.
- Shape Customization
- Adjustable terrain shaping using noise filters for unique planetary surfaces.
- Material and Texture Management
- Utilizes Unity's materials to dynamically apply textures and colors based on elevation and biome settings.
- Interactive Editor Integration
- Includes Unity Editor tools to visualize and tweak planet settings in real-time.
💡Objective: Explore and understand procedural generation techniques and their application in creating visually stunning 3D planets.
- Generate unique planets with just a click.
- Experiment with settings to customize planet shapes, terrains, and biomes.
- Use editor tools to visualize changes in real-time.
- Unity Version: 2023 or higher
- Basic knowledge of Unity and C# scripting.
- Clone this repository
- Launch Unity Hub, add the cloned folder, and open it.
- Open the MainScene and hit play to see your procedural planets come to life.
- Use the custom editor tools to tweak shape, color, and biome settings directly in the Unity Inspector.
Scripts
- ColorGenerator: Handles biome-based texture generation with gradient and tint support.
- ShapeGenerator: Manages terrain shaping using customizable noise filters.
- TerrainFaces: Splits the planet into 6 manageable faces for efficient mesh generation.
Scriptable Objects
- ShapeSettings: Define terrain noise and elevation properties.
- ColorSettings: Configure biome colors, blending, and noise-based variations.
Custom Editor
- Interactive editor script to adjust planet settings and preview changes in real-time.
Looking to contribute something to this project? Here's how you can help.
If you believe something needs to be immediately fixed please open an issue and document the problem. Fork this project and create a pull request with your solution to the problem. Thank you.
- Yashar Shaikh ([email protected])
- Github
- Linkdin