The planet renderer raytraces a full world into a transparent 512-pixel texture: a domain-warped continent field with polar ice and elevation-graded terrain, a sea that runs from abyssal depths through bright shelf shallows to an anti-aliased coastline, a swirled cloud layer that shadows the surface, and volumetric atmospheric scattering. Fourteen class presets vary the surface palette, sea level, ice, clouds, and atmosphere over one shader; the ocean class biases its sea level to near-total coverage, the gas-giant and ice-giant classes switch the surface to latitude banding, and the barren class removes the atmosphere, lighting the surface with direct sunlight and the hard terminator of a vacuum world. Moons are barren-class appearances displayed small. The optional ring system renders in the equatorial plane with seeded ringlets, casts its shadow onto the planet and its atmosphere, and takes the planet's shadow in return. The generated JSON records the class and every visible knob as an appearance block.
Preparing WebGL renderer…
Fragment shader source
Loading production shader source… Adapted from Planet Shadertoy by Reinder Nijhoff (CC BY-NC-SA 4.0), which builds on Atmospheric Scattering by GLtracy and Seascape by TDM.