PlanetGen — Procedural Spherical Terrain - Playable Demo
PlanetGen is a runtime C++ plugin (with full Blueprint support) for Unreal Engine 5 that generates streaming procedural spherical terrain — a full planet you can fly around, land on, and explore. Async chunk streaming, layered 3D noise, biome blending, foliage, and a water sphere, all without blocking the game thread.
Drop ACLMPlanet into your level, assign a material, and click Preview Planet. Hit Randomize for a new world.──────────────────────────────
CORE FEATURES
──────────────────────────────
▸ Spherical Streaming Terrain — Cube-face parameterization divides the sphere into 6 faces, each streamed as a grid of chunks. Actor pool recycles chunks at runtime — no spawn/destroy overhead.
▸ 3D Noise Sampling — All noise is sampled in 3D world space, ensuring perfectly uniform terrain on every face with zero equatorial stretching. No distortion at the poles or seams between faces.
▸ Async Mesh Generation — Geometry built entirely on a thread pool. Game thread is never blocked.
▸ Layered Noise Stack — Stack up to N noise layers. Layer 0 acts as a continental mask controlling where mountains appear vs flat plains. Built-in presets: HighDetail, Smooth, Mountains.
▸ FastNoise Lite Integration — Perlin, OpenSimplex2, Cellular, Ridged Multifractal, Domain Warp Progressive (MIT licensed, ships with source).
▸ Biome Blending — Vertex color blend weights for Grass / Rock / Snow / Underwater. Plug directly into any landscape material. Compatible with WorldGen flat terrain materials.
▸ Foliage System — BiomeFoliageAsset data assets drive HISM scatter on the thread pool. Per-mesh density, height, slope, scale, clustering, and collision. Same data assets as WorldGen flat terrain — configure once, use on both.
▸ Dense Grass System — WorldGenGrassAsset data assets drive ISM ground cover at high resolution. Slope-aware instance sinking, surface normal alignment, per-chunk random jitter. Same data assets as WorldGen flat terrain.
▸ Procedural Water Sphere — Smooth UV sphere at sea level. Configurable subdivisions (default 64) for silky-smooth appearance at any planet scale.
▸ Seed and Randomize — Every planet is seeded and deterministic. One click generates a completely new world. Seed is exposed so you can save and share specific planets.
▸ ACLMPlanetSunSky subclass — Optional subclass with full SunSky integration. Requires SunPositionCalculator plugin (bundled with UE5). Automatically configures the scene's SkyAtmosphere radius and VolumetricCloud layer height to match your planet size.
▸ Editor Preview — CallInEditor buttons (Preview Planet, Clear Planet, Randomize Planet) rebuild terrain without entering Play mode.
──────────────────────────────
TECHNICAL HIGHLIGHTS
──────────────────────────────
▸ Full Blueprint Support — All properties are Blueprint-readable and writable. PreviewPlanet(), ClearPlanet(), and RandomizePlanet() are all Blueprint-callable at runtime. Trigger planet rebuilds, seed changes, or clear events from any Blueprint graph.
▸ ProceduralMeshComponent-based geometry
▸ Cube-face parameterization — equal-area distribution, no pole distortion
▸ 3D noise sampling — zero equatorial stretching on any planet size
▸ Fully exposed parameter categories with tooltips and clamped slider ranges
▸ Seeded RNG per chunk — deterministic foliage placement
▸ Compatible with WorldGen flat terrain foliage and grass data assets
──────────────────────────────
INCLUDED
──────────────────────────────
▸ Full C++ source
▸ Pre-built planet material (M_Planet) with biome blending wired up
▸ Water sphere material
▸ Sample foliage data asset (trees, pine)
▸ Sample grass data asset (grass clump)
▸ Sample tree and pine meshes with materials
▸ Sample grass mesh with material
▸ BPCLMPlanet Blueprint subclass for easy editor configuration
▸ PlanetMap demo level — ready to Preview Planet out of the box
──────────────────────────────
PERFECT FOR
──────────────────────────────
Space games, planetary exploration, sci-fi survival, alien world prototypes, and any project needing a fully streaming spherical planet with real terrain — without writing cube-sphere math, noise systems, or chunk management code from scratch.
Comments (2)
Suggestion, hehehe, put the player fall to the planet.
Yes. I have already working that on my project locally. But it needs some polishing up. I will share an update soon when it is done.
