Temporal Antialiasing: Accumulating Detail Without Trusting Invalid History
Understand jitter, reprojection and history validation, then diagnose ghosting with a calculated blend example and motion-focused tests.
Contents
Accumulate samples across time
Temporal antialiasing, or TAA, combines current samples with information accumulated in previous frames. Changing subpixel sample positions can reveal detail that one fixed sample misses. The central problem is deciding which older samples still describe the current image. A research survey separates this into sample accumulation and history validation. [1]
Jitter, motion and validity
Projection or viewport jitter moves the sampling pattern by subpixel amounts. Motion vectors locate corresponding history samples; depth comparisons and neighborhood color bounds help reject or constrain incompatible history. Newly exposed background has no valid visible history at that location. Intel's implementation illustrates these mechanisms. [3]
Camera motion alone is insufficient for moving or deforming meshes. Verify vector direction, units, coordinate orientation and whether jitter is included by the producer and expected by the consumer. Playdead's implementation explicitly requires motion information for individual moving meshes. [2]
Worked example: a correct blend can retain an error
Consider an illustrative scalar filter: C = 0.1 * current + 0.9 * history. Initially, history is 0. A newly revealed white surface has a current value of 1, but assume the filter incorrectly keeps the old history and applies no rejection or clipping.
The output is 0.1 after the first update and 0.19 after the second. After 10 updates it is about 0.651: roughly 34.9% of the original discrepancy remains. These calculated values demonstrate persistence, not a benchmark or the behavior of every TAA implementation. Correctly invalidating history at the reveal can remove this particular trail immediately; changing only the blend weight trades persistence against stability.
Diagnose with controlled motion
Begin with fixed exposure and a stationary camera looking at thin edges and high-contrast detail. Compare the current image, reprojected history and resolved output. Then test camera translation, a moving rigid object and a deforming object separately.
Inspect motion vectors and history confidence around silhouettes. Move an occluder to expose a bright background, and perform a camera cut to verify history reset. Distinguish an incorrect reprojection from history that is correctly located but no longer appropriate. Add transparent layers and animated lighting only after these cases work. Keep captures from motion sequences; a still screenshot can hide a trail.
Balance stability and responsiveness
More aggressive history rejection reduces persistence but can restore shimmer and noise; tighter color clipping can remove legitimate detail. Surface motion also fails to describe every moving highlight or overlapping transparent layer. Sharpening may improve apparent crispness, but it cannot repair wrong correspondence. Evaluate moving image quality and resolve cost together, using representative content instead of one universal history weight.
Sources
- [1] A Survey of Temporal Antialiasing Techniques — Lei Yang, Shiqiu Liu and Marco Salvi, Computer Graphics Forum.
- [2] Temporal Reprojection Anti-Aliasing — Lasse Jon Fuglsang Pedersen and Playdead.
- [3] Intel Graphics Optimized TAA — Intel, GameTechDev original implementation.
Scope and basis
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
Knowledge as of: 2026-10-11. Status: unreviewed (no documented review) — edits reset the review status. Treat the text as unverified reference material and check the sources.
Sources
- A Survey of Temporal Antialiasing Techniques — Lei Yang, Shiqiu Liu and Marco Salvi, Computer Graphics Forum — checked 2026-10-12: reachable
- Temporal Reprojection Anti-Aliasing — Lasse Jon Fuglsang Pedersen and Playdead — checked 2026-10-11: reachable
- Intel Graphics Optimized TAA — Intel, GameTechDev original implementation — checked 2026-10-12: reachable
Attribution and license
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
Latest change: Original source-based game-development article.
Original contribution: CC BY 4.0. Linked source material retains its own rights.