ReadonlynameHuman-readable identifier used in graph node labels and error messages.
StaticcreateRender context.
OptionaloutputFormat: GPUTextureFormatFormat of the backbuffer attachment the tonemap will
write to. Defaults to ctx.format (canvas swapchain format).
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).
Render context whose queue receives the buffer write.
Linear exposure multiplier applied before the curve.
Tonemap curve: a number (0 = none/linear, 1 = ACES
Narkowicz, 2 = ACES fitted RRT/ODT) or, for back-compat, a boolean
(true → ACES Narkowicz, false → none).
Skip the sRGB encode (for HDR swapchains).
Set (or clear) the lens & film post-FX stack. null disables it. The
settings object is re-packed every updatePostFx so live edits to its
fields take effect.
AR passthrough: clear the backbuffer to transparent (alpha 0) instead of
opaque black. Pair with preserveAlpha in updateParams so the
shader emits scene coverage as the output alpha.
Re-pack + upload the post-FX uniform. Call every frame: time (seconds)
animates the film grain and width/height drive the vignette aspect and
grain cell size. paniniTanHalfFov is tan(½ · verticalFov) — pass the live
camera's value so the Panini warp matches the rendered FOV.
Set (or clear) the color-grading stack. null disables grading. The grade
uniform is re-uploaded on the next update; mutating the same object
and re-calling setGrade (or just calling update) picks up live edits.
Bind a parsed 3D LUT (upload via uploadCubeLut). Pass null to
revert to the identity LUT. amount (0..1) blends the LUT against the
ungraded display color. The pass does not take ownership of the texture.
Live LUT blend amount (0..1) without re-uploading the texture. No-op if a LUT is not bound.
Re-upload the grade uniform if any grade/LUT state changed since the last upload. Cheap to call every frame (no-op when clean).
Force the grade uniform to re-upload next update (call after mutating fields on a live grade settings object).
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.
Final HDR-to-SDR tone-mapping pass (render-graph version).
Samples an HDR input, applies an exposure multiplier and an optional ACES filmic curve, then writes the result to the supplied backbuffer attachment. The HDR input handle is supplied each frame via addToGraph; the pass owns the pipeline, sampler, and params uniform buffer.