Guide: Applying Post-Processing Effects
ChainRender's effects library (EffectPresetRegistry) applies post-processing — CRT, glass, vignette,
scanlines, grain — over a rendered scene or image, as a composable, content-addressed stack.
Apply an effect stack
Effects are referenced by preset (content hash) and applied as a stack over the base render. Each effect has an SVG-filter floor, so the effect applies on-chain (not only as a GPU shader) — the styled result is part of the trustless output, and richer GPU versions enhance over it.
// conceptually: base scene + an ordered effect stack (each preset referenced by hash)
// [crt] -> [vignette] -> [grain]
Why effects are floored
A naive "apply a shader" would only work on a capable GPU client. ChainRender's effects each have an on-chain SVG-filter floor, so:
- the effect applies on-chain (Grade A) as an SVG filter,
- a GPU client can render a richer version over it,
- it fails closed to the SVG-filter floor.
Composability
Effects are data — stack several, reorder them, reuse presets across components. Because presets are content-addressed, an effect stack is reproducible and shareable.