-
What Is Aliasing?
- Aliasing: high-frequency signal sampled at too low a rate → artifacts
- In rendering: sharp edges appear as “jaggies” (staircase pattern)
- Nyquist theorem: must sample at 2× the highest frequency to avoid aliasing
- Solution: anti-aliasing — reduce high frequencies before sampling
-
Supersampling (SSAA)
- Render at higher resolution, downsample to final resolution
- 4× SSAA: render at 2× width and height, average 4 pixels → 1
- Pros: simple, correct
- Cons: 4× more rays — too expensive for real-time
-
Jittered Sampling (Stochastic AA)
- Instead of one ray per pixel center, jitter the ray within the pixel
ray_uv = (pixel + vec2(random(), random())) / resolution
- With N samples per pixel: each sample uses a different jitter
- Converts aliasing into noise — noise is less objectionable than jaggies
- This is what path tracing does naturally (each sample is a different ray)
-
Stratified Sampling
- Divide pixel into N×N strata, sample one per stratum
- Better distribution than pure random — avoids clustering
- For 4 samples: 2×2 grid, one sample per cell
-
Temporal Anti-Aliasing (TAA)
- Accumulate jittered samples over multiple frames
- Each frame: use a different sub-pixel jitter pattern (Halton sequence)
- Blend with previous frame:
output = lerp(prev, current, blend_factor)
- Effectively: N frames × 1 spp = N spp anti-aliasing
- Jitter patterns: Halton(2,3) sequence — good low-discrepancy distribution
- Requires motion vector reprojection (same as temporal accumulation)
- Ghosting: same issue as temporal accumulation — need rejection
-
MSAA (Multisample Anti-Aliasing)
- Hardware rasterization feature — not directly applicable to ray tracing
- Samples geometry coverage at multiple sub-pixel positions
- Shades each pixel once but uses coverage information
- Not useful for path tracing (we already trace multiple rays per pixel)
-
DLSS / FSR (AI/Spatial Upscaling)
- Render at lower resolution, upscale with AI or spatial algorithms
- DLSS (NVIDIA): AI-based, uses temporal data — very high quality
- FSR (AMD): spatial algorithm, no temporal data — lower quality but universal
- Both provide anti-aliasing as a side effect of upscaling
- See PathTracer Learning - DLSS and Denoising
-
Pixel Reconstruction Filter
- How to combine multiple samples within a pixel
- Box filter: simple average — blurry
- Tent filter: linear falloff — slightly better
- Gaussian filter: smooth falloff — good balance
- Mitchell-Netravali: negative lobes — sharper but can ring
- For path tracing: Gaussian or Mitchell-Netravali are common choices
- Filter radius: typically 1-2 pixels