Skip to content

Linear light and exposure

Worth knowing even if you never bind anything here, because it changed what the other luminance params mean.

The composite is no longer capped at 1.0. Every stage from the scene to the transition blend now carries floating-point linear light, and a single engine tonemap turns it into a displayable picture at the very end. So two full-brightness strokes crossing no longer land on the same white as one, a glow above 1 is no longer thrown away, and brightness past 1 keeps carrying information instead of flattening.

What that changes for authoring:

  • The old “additive ceiling” habit is softer, not gone. Stacking luminance used to go flat white and take the colour with it; now it rolls off — the hue survives, the structure inside a hot core stays readable, and a peak reads as intense rather than as broken. Holding luminance nearly flat and spending the peak on structure is still the better-looking choice, but it is now a taste rule rather than a cliff.
  • The roll-off is engine-fixed, and it is the identity below about 0.6, so everything a preset was already doing in the low and mid range is untouched. Above that it compresses, and it never reaches pure white at any input.
  • glow above 1 now does something. It used to widen a skirt around an already-saturated core; now the core itself carries the extra energy, which is also what makes it something for bloom to find.
ParamDefaultMeaning
exposure1.0A linear multiplier on the whole frame before the tonemap — backdrop, scene, halo and all. 2 is a stop up, 0.5 a stop down. Engine-wide and not per-stage, so like ink_* it crossfades across a preset dissolve rather than snapping.

exposure is the whole-frame correction, and specifically it is the answer to the tonemap: the curve above compresses everything past about 0.6, so a mid-tone-dominated look can come out a few percent flatter than it was authored and a stop up is how you give that back.

It is not a figure’s level, and reaching for it as one costs you twice. If one element is too bright or too dim, the lever is that scene’s own level param — brightness on the particle scenes (attractor, swarm, emitter), glow on the line scenes, bg_bright for the backdrop. Those are scene-local: they blend as pixels across a dissolve and they leave everything else in the frame where it was. exposure does neither. It crossfades as a scalar, so a preset sitting at an extreme stop drags the ~1 s blend from any neighbouring preset through a badly exposed frame; and it is the number bloom_threshold is measured against, so spending it on a level moves the bright-pass’s units under you.

Bind it sparingly for the same reason it exists — an exposure riding the bass pumps the entire frame, which reads as a camera reacting rather than as the music, and it is the same trap glow on a beat has always been.

Built from a8ce055 at version 0.115.0. This site tracks main and is not versioned per release.