Creates both layers; anything not given uses DEFAULT_CLOUDS.
ReadonlyobjectBoth layers. Added to the sky's group.
Resolved settings. Change them with Clouds.set / Clouds.reset.
ReadonlyuniformsShared uniforms.
Sky light radiance on clouds.
Cloud albedo colour.
1 = bend local-layer clouds down with distance (flat local frame).
Density multiplier.
Haze distance, metres (0 = none, e.g. in space).
Haze colour (horizon sky).
Moonlight radiance on clouds.
Render-space planet centre.
Planet radius, metres.
Global layer: body → render rotation including wind drift.
Local layer: render-space drift since the last rebuild.
Silver-lining strength.
Direct sunlight radiance on clouds.
Towards the sun.
Cloud cover 0..1 at a render-space position right now (low clouds; the same field the splats are placed from, drifting with the wind). Use it to align rain, shadows or gameplay with the clouds.
Frees GPU resources.
Replaces all settings; anything not given goes back to DEFAULT_CLOUDS.
Places and lights the clouds for this frame. Called by Sky.
Sky state (frame, camera position relative to the planet, sun and moon).
Camera position, render space.
Radiances (direct sun, moon, sky ambient, haze colour; linear RGB) and hazeFade 0..1 (0 above the Kármán line).
Atmosphere altitude scale (planet radius / Earth radius, or 1).
Tropopause altitude (for the orbital cross-fade), metres.
Latitude/longitude the detailed layer's tangent plane is anchored at (planet frame).
Sparse Gaussian clouds. Created by
Sky(sky.clouds), which drives them every frame; use Clouds.coverAt to ask how cloudy it is anywhere (e.g. to make it rain under clouds).