ReadonlynameHuman-readable identifier used in graph node labels and error messages.
Fade sky pixels below the horizon to black. Useful on worlds whose geometry doesn't wrap to the horizon.
Attenuate each star by the luminance of the sky already behind it, so
stars dissolve smoothly into a bright atmosphere instead of cutting off at
a hard contrast line. 0 disables it (the default — stars are added at
full strength everywhere). Larger values fade stars out faster as the sky
brightens; the attenuation is exp(-skyLuminance * skyExtinction). Handy
for planet/atmosphere scenes where the daytime lower sky is bright but the
zenith is dark. No effect at night (dark sky → attenuation ≈ 1).
How far stars wrap below the horizon, in [0, 1]. 0 (the default)
clamps stars to the upper hemisphere — correct for ground-based scenes
where the lower half is occupied by terrain. 1 lets stars cover the
full sphere, which is what you want out in space looking in any direction.
Drive it with altitude for a smooth ground → space transition.
World-space center of a body that occludes the stars (the painted planet body in curved-horizon space views). Rays that strike its sphere skip the starfield, so stars don't bleed over the planet.
Radius (m) of occluderCenter's body. 0 (default) disables occlusion.
When true AND a catalog texture has been set via setCatalog, draw real Yale-BSC5 stars from the baked equirect instead of the procedural field.
Linear brightness multiplier applied to catalog stars at render time (on top
of the per-star flux baked into the equirect). Default 4 — the raw BSC5
flux is dim, so the real-star sky needs a lift to read; lower it to dim,
raise it to pop. Only affects the catalog path — the procedural field keeps
its own fixed gain.
Provide the baked star-catalog equirect (from bakeStarCatalogTexture).
Pass null to clear it. Catalog stars render only when this is set AND
catalogMode is true.
StaticcreateInverse view-projection of the rendering camera.
World-space camera position.
Unit vector pointing TOWARD the sun (-light.direction).
When the sun is high above the horizon, stars are completely hidden.
Set the catalog-star celestial orientation from observer latitude and local sidereal time, so real star positions land at the correct altitude/azimuth (the north celestial pole sits at altitude = latitude) and rotate with time. Builds the world→equatorial rotation M = Rᵧ(lst)·Rₓ(φ−90°) (column-major), matching the shader's equatorial frame (Y = pole, RA in the X–Z plane).
Observer latitude in radians (+N).
Local sidereal time as an angle in radians (animatable; advances ~2π per sidereal day).
Reset the catalog orientation to identity (equatorial frame == world).
Insert the pass into graph for one frame. Implementations call
graph.addPass(name, type, b => { ... }) exactly once and use the
supplied PassBuilder to declare reads, writes, transient
resources, and the execute callback.
Graph being built this frame.
Pass-specific dependency record (handles, scene data, etc.).
Pass-specific output record (typically a set of handles downstream passes will consume).
Release every long-lived GPU resource owned by the pass (pipelines, persistent uniform buffers, samplers, BGLs). Called by the factory or application during teardown. Default implementation is a no-op.
Standalone procedural starfield pass. Adds stars only on sky pixels and fades them with the sun's altitude (night-only). Add this before any final tonemap so stars are reshaped along with the rest of the scene.
Stars are added in linear HDR space (no exposure scaling applied here) — downstream tonemap/exposure handles the brightness response. This differs slightly from CompositePass which scales the scene by auto-exposure before adding stars, keeping their absolute brightness constant.