Inspired by some youtube videos (see references), I decided to implement a simplex noise-based planet mesh generator in Unity. The planet mesh is discretized on a quad-tree, enabling real-time LOD computation. However, I haven’t fixed the seams that appear between two LOD levels.

Dynamic LOD computation#

Remeshing around the player camera position.

Different LOD levels#

Atmospheric scattering shader#

I also experimented with a customizable atmospheric scattering shader to the planet. I really love the sunrise result.

Sunrise to sunset#

Space view#

References#

  1. [Unity] Procedural Planets (E03: layered noise) - Sebastian Lague. 2018. Youtube. youtube.com/watch?v=uY9PAcNMu8s

  2. 3D World Generation: #4 (Planetary LOD): Generating Procedural Planets with Level-of-Detail! - SimonDev. 2020. Youtube. 2016. youtube.com/watch?v=HIYs7Hoq2yQ

  3. Coding Adventure: Atmosphere - Sebastian Lague. 2020. Youtube. youtube.com/watch?v=DxfEbulyFcY