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(defaultInfinity) andnightExposure(default none), inrenderer.toneMappingExposureunits. 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) andsky.displayExposure(exposure / lightScale, or the renderer's value withoutautoExposure). NatureGL Water 1.1 readsdisplayExposure, sowater.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'swater.renderHDR(), instead of rendering the scene again.render()is unchanged. Read more.examples/basicaccepts?preset=night&maxExposure=2.4&nightExposure=5&stillto 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 inupdate(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,setTimeandclock. - 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,
patchMaterialfor built-in materials,CLOUD_SHADOW_GLSL, fog colour and sigma, lightning, andbindLights(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/dynamicmodes. - 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.__proautomation contract.