Skip to content

Post-processing & tone mapping

Rendering runs through an EffectComposer, so post-processing is a chain of opt-in passes configured under the environment’s postProcessing block (packages/engine/src/scene/schema/environment.ts). Each effect has an enabled flag plus its own parameters.

EffectComposer chains AO, SSR/SSGI, bloom, color/lens/film, and SMAA after the render
A typical post-processing chain.

Independent of the effects, tone mapping maps HDR color to display range. toneMapping operators: none, linear, reinhard, cineon, aces, agx, with an exposure level. (The renderer defaults to ACES Filmic — see Rendering.)

All of these are available under postProcessing:

  • Glow & vignettebloom (intensity, luminanceThreshold, luminanceSmoothing), vignette (darkness, offset).
  • Color gradingbrightnessContrast, hueSaturation, sepia, colorDepth.
  • LenschromaticAberration, lensDistortion, depthOfField, tiltShift.
  • Film / retronoise, scanline, dotScreen, grid, pixelation, glitch.
  • DistortionshockWave.
  • Anti-aliasingsmaa.
  • Ambient occlusionssao, n8ao.
  • Screen-spacessr (reflections), ssgi (global illumination), motionBlur.
  • Entity-referencinggodRays (from a light source), outline (highlight tagged entities).