NatureGL Skyv1.1.0

More

Changelog

Every release of naturegl-sky. The package follows semantic versioning.

#1.1.0

2026-09-24 These fixes came out of the NatureGL Island integration.

#Added

  • Exposure ceiling. New options and properties maxExposure (default Infinity) and nightExposure (default none), in renderer.toneMappingExposure units. The metered exposure ran from about 1.3 at noon to 30–60 on a moonlit night, so nights rendered like day. { maxExposure: 2.4, nightExposure: 5 } keeps them dark. The moon, stars and lightning are still scaled by the exposure actually applied. Read more.
  • sky.meteredExposure (raw), sky.night (0..1) and sky.displayExposure (exposure / lightScale, or the renderer's value without autoExposure). NatureGL Water 1.1 reads displayExposure, so water.render() matches the sky.
  • SkyPostPass.composite(colorTexture, depthTexture, camera, target?) runs the post chain (height fog and god rays, clouds over geometry, bloom and shafts, grade, renderer tone mapping) over an HDR colour and depth you already have, such as NatureGL Water's water.renderHDR(), instead of rendering the scene again. render() is unchanged. Read more.
  • examples/basic accepts ?preset=night&maxExposure=2.4&nightExposure=5&still to try the ceiling.

#1.0.0

2026-09-24 The first release of the packaged sky, built from cloudpro-plus/ and the physically based cloudpro.html v2.

#Library

  • SkySystem.create({ renderer, scene, camera, quality, cloudRenderingMode, preset, … }): a far-plane backdrop mesh in the caller's scene, with all offscreen work in update(dt).
  • A world-space cloud slab at real altitudes. The camera can be below, inside or above it.
  • Temporal reconstruction with full view-projection reprojection at a recorded cloud depth, depth-based history rejection, Catmull-Rom history reads, and a true-transmittance channel for sun, moon and star dimming.
  • A sky-view LUT atmosphere (Rayleigh, Mie and ozone) at the camera altitude, key-light colours from a CPU transmittance twin, and metered auto exposure.
  • A day/night clock with a real sun track (latitude, declination), a phase-accurate moon, and rotating stars and milky way. Adds sun.setFromAngles, setTime and clock.
  • Outputs: sun, moon and key light, hemispherical ambient, an equirect env map (time-sliced bake) with PMREM (reduced GGX samples), a cloud shadow map with its matrix, patchMaterial for built-in materials, CLOUD_SHADOW_GLSL, fog colour and sigma, lightning, and bindLights(directional, hemisphere?).
  • SkyPostPass: height fog with volumetric god rays through the shadow map, clouds over geometry, bloom with sun shafts, a night grade, and renderer tone mapping.
  • Quality tiers low / medium / high / ultra with overrides, and static / dynamic modes.
  • 15 presets, one file each.

#Rendering fixes over cloudpro

  • A lattice-keeping empty-space skip (2-step stride and rewind) removes the fixed hatch pattern.
  • The dither step stays low-discrepancy under the 8-frame jitter cycle.
  • The sun disc, aureole, moon and stars are dimmed by true cloud transmittance.
  • Crepuscular darkening preserves hue.
  • Adds a silver-lining lobe, curl-warped detail erosion and a weather-map cache.
  • Adds a lunar aureole, a warm-cored milky way, and stars sized by the pixel footprint.
  • Adds a ground model with cloud shadows below the horizon, and a horizon dip for high cameras.

See the before/after sliders in Under the hood.

#Demo

  • An island and open-sea scene that proves the composition: env reflections, cloud shadows, key light and fog.
  • A fly/orbit camera with altitude jumps and the cloudpro console look.
  • Presets, dice, clock, quality and post toggles, copy preset JSON, link, PNG, 4K poster, WebM, and the window.__pro automation contract.