[RELEASED] Procedural Planet Generation: Shaders, In-Editor Baking & Custom Space Lighting

Procedural Planet Generation is a Unity framework for creating procedural celestial bodies through shaders with editor tools for texture baking and scripts for in-editor and runtime procedural generation.

Documentation | Demo Build | Free Version

What it’s for

This asset is for procedural shaders on sphere meshes, not landable terrain. Best when viewed from space - like in space strategy games, solar system maps, background environments, and skyboxes.

Why use it

Built entirely with Shader Graph, VFX Graph, and Render Graph, it’s future-proof and up-to-date with Unity’s most modern rendering systems.

Dynamic Celestial Bodies

  • Gas giants and stars are animated and dynamic with procedural noise flowing patterns.

  • Terrestrial planets are complex and layered with multiple terrain features, possessing procedural surface colors and normals.

Advanced techniques like dynamic procedural filtering eliminate common shader pain points like aliasing artifacts on high-detail procedural noise and normals.

In-Editor and Runtime Random Generation

With custom inspector and script callbacks for instant procedural generation:

Built-In Texture Baking

Using complex procedural shaders can be very taxing on the GPU. So this framework has built-in texture baking utilities for every procedural shader - allowing you to make unique visuals in the editor, and if performance is key, bake and store them into static textures for massive performance gains:

Custom Space Lighting

Every shader has a custom lighting variant with manual lighting calculations and script components for setting up a scene with omnidirectional space lighting coming from a single star source:

VFX Graph Integration

Stars use VFX graph for corona glow effects:

Background starfield generated with a custom highly performant VFX Graph skybox system:


Gallery:










The 1.1.0 update brings improved gas giants and asteroid rings:

One of the most common complaints was the performance of the gas giant shader at runtime, so I’ve completely reworked it to use a lower-order domain warping noise and a vertical sine function to get the banding. This new gas giant shader is much faster, more than doubling performance to 140+ FPS at 1080p, compared to 60 FPS at 1080p for the old one, when taking up the entire screen.

Procedural smoothness has been added to both gas giants and asteroid rings, and the custom space lighting implementation has been greatly streamlined. Custom shadows now use a global buffer so we can support multiple shadowcasters per planet:

Other minor features have been added, like bulk texture baking and orthographic camera support for the post-processing glow effects:

The 1.2.0 update brings an entirely new gas giant technique: Real-time curl flow with custom render textures. This can give us much better-looking and more performant gas giants. The performance is constrained by the render texture resolution, not the game resolution, so the framerate between 1080p and 4K is the same. You can find the documentation about them here.




The 1.3.0 update brings procedural asteroids and asteroid belts: