@equinor/videx-3d
    Preparing search index...

    Class TAAPass

    Temporal Anti-Aliasing pass (jittered accumulation) for use with the RenderingPipeline.

    Each frame the camera's projection is offset by a sub-pixel jitter from a Halton(2,3) sequence and the freshly rendered buffer is accumulated into a history target as a running average. Because the 1px-line problem with supersampling is that the line stays one device-pixel wide as the buffer grows, jittered accumulation is the technique that does anti-alias thin features: the same 1px line lands on slightly different sub-pixel positions each frame, so the average is coverage-weighted without thinning.

    The accumulation resets whenever the (un-jittered) camera view changes, so an orbit-and-inspect workflow converges to near-supersampled quality within a handful of static frames. Once the full jitter sequence has accumulated the pass freezes (no further jitter or blending) and presents the converged image until the next camera move, so a still camera settles to a stable result. Place it where you would place FxaaPass — before the OutputPass.

    Limitations (no history reprojection / neighbourhood clamping): animated content that moves while the camera is static (e.g. additive jet streams) does not update once the image has converged and frozen, and ghosts before then. Camera motion itself never ghosts because it triggers a reset.

    Improve TAA. Current trade-offs to address: (1) AA is only present once the camera settles — during motion the image is un-anti-aliased and it takes roughly a second of stillness to converge; (2) because the pass freezes on convergence, content that changes while the camera is static (a highlight toggled on, async geometry finishing loading) does not appear until the next camera move. A proper fix needs motion vectors + history reprojection + neighbourhood colour clamping so the history can be reused under motion and invalidated per-pixel on content change, rather than the all-or-nothing reset-on-camera-move + freeze-on-convergence heuristic used here. Likely revisited as part of the WebGPU/TSL renderer migration.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    sampleCount: number

    Number of unique jitter samples to cycle through before the average is considered fully converged. Higher = smoother but slower to settle.

    writeToScreen: boolean = false

    Methods

    • ---- render -------------------------------------------------------------

      Parameters

      • renderer: WebGLRenderer
      • buffer: WebGLRenderTarget

      Returns void