Skip to content

Post-Effect ​

The Post-Effect system applies screen-space lighting, color grading, lens effects, and anti-aliasing to the final output image via a compute-shader pipeline after the 3D scene's G-Buffer rendering is complete.

1. Control Interface ​

View3D provides two manager properties depending on the post-processing purpose, while actual pipeline execution and texture pooling (PostEffectTexturePool) are centrally managed by PostEffectManager.


2. Rendering Pipeline Execution Order ​

PostEffectManager executes post-processing in the following 3 phases to preserve physical accuracy and image quality:

  1. HDR Built-in & Temporal Phase
    • Sequentially composites SkyAtmosphere, SSAO, and SSR using the scene's HDR color and G-Buffer (depth, normal, motion vector).
    • When TAA is enabled, it performs motion-vector-based temporal accumulation in HDR space prior to tone mapping, followed by camera AutoExposure luminance calculation.
  2. User Effects & Smart Tone Mapping Transition Phase
    • Iterates through the effect list registered via view.postEffectManager.addEffect().
    • HDR-based effects (isLdr: false, such as OldBloom) run first in HDR space. As soon as the first LDR effect ( isLdr: true) is encountered, ToneMappingManager is executed immediately to transition into LDR color space (if no LDR effects are present, tone mapping runs right after the loop).
  3. LDR Finalization Phase
    • Composites the reference grid (view.grid) using the depth buffer when enabled.
    • Completes the final image through FXAA or TAA's Contrast Adaptive Sharpening (CAS Sharpen) pass depending on the anti-aliasing configuration.

3. Core Components ​

  1. General Effects: Build filter chains such as bloom, depth of field (DoF), blur, fog, and color adjustments via addEffect().
  2. Tone Mapping: Map HDR scene colors and exposure into the LDR display range via ToneMappingManager.
  3. Built-in Effects: Activate G-Buffer-integrated SSAO and SSR effects.


Next Step: Learn General Effects