-
Phase 5 — Advanced Topics
- Production-quality rendering techniques. These are what separate a toy path tracer from a real-time renderer.
- Parent: PathTracer Learning
-
5.1 Denoising
- PathTracer Learning - DLSS and Denoising
- Full breakdown of temporal and AI-based denoising
- PathTracer Learning - Concept - Temporal Accumulation
- PathTracer Learning - Concept - Temporal Rejection
- Why denoising is necessary
- Real-time path tracing can only afford 1-4 samples per pixel per frame
- 1 spp produces extremely noisy images
- Denoising reconstructs a clean image from noisy input
- Denoiser types
- Temporal: accumulate samples over time (free, but ghosting artifacts)
- Spatial: blur neighboring pixels (fast, but loses detail)
- AI: DLSS, OIDN — trained on clean/noisy pairs (best quality)
- Hybrid: temporal + spatial + AI (what production renderers use)
- G-buffer requirements for denoising
- World-space normals (not view-space — more stable across frames)
- Albedo (demodulated from lighting)
- Depth or linear depth
- Motion vectors (for temporal reprojection)
- Demodulation
- Separate albedo from lighting before denoising
noisy_lighting = noisy_color / max(albedo, 0.001)
- Denoise
noisy_lighting, then remodulate: denoised_color = denoised_lighting * albedo
- Why: albedo has high-frequency texture detail that denoiser would blur
-
5.2 ReSTIR
- PathTracer Learning - ReSTIR
- Reservoir-based Spatiotemporal Importance Resampling
- Dramatically improves direct lighting quality with many lights
- ReSTIR DI (Direct Illumination)
- Handles scenes with thousands of lights efficiently
- Temporal reuse: reuse reservoir from previous frame
- Spatial reuse: share reservoirs with neighboring pixels
- ReSTIR GI (Global Illumination)
- Extends ReSTIR to indirect lighting paths
- Reuses entire path segments, not just light samples
- Requires careful MIS weighting to avoid bias
- ReSTIR PT (Path Tracing)
- Full path resampling — reuse entire light paths
- Paper: “Generalized Resampled Importance Sampling” (Kettunen et al. 2023)
-
5.3 Multiple Importance Sampling (MIS)
- PathTracer Learning - Concept - MIS
- Full derivation and implementation details
- Balance heuristic:
w_i = p_i / Σ p_j
- Power heuristic (β=2):
w_i = p_i² / Σ p_j² — usually better
- Veach MIS weight for NEE + BRDF
w_nee = p_light² / (p_light² + p_brdf²)
w_brdf = p_brdf² / (p_light² + p_brdf²)
-
5.4 Spectral Rendering
- RGB vs spectral
- RGB: 3 wavelength samples — fast but physically inaccurate
- Spectral: sample many wavelengths — accurate but expensive
- Hero wavelength sampling: trace 4 wavelengths per ray (good compromise)
- Dispersion
- Different wavelengths refract at different angles (prism effect)
- IOR varies with wavelength:
n(λ) = A + B/λ² (Cauchy’s equation)
- Fluorescence
- Material absorbs one wavelength, emits another
- Requires full spectral representation (not possible with RGB)
-
5.5 Volumetric Rendering
- Participating media: fog, smoke, clouds, subsurface scattering
- Volume rendering equation
L(x, ω) = ∫ T(x,y) [σ_s(y) L_s(y,ω) + σ_a(y) L_e(y,ω)] dy + T(x,x_s) L(x_s,ω)
T — transmittance, σ_s — scattering, σ_a — absorption
- Phase functions
- Henyey-Greenstein:
p(θ) = (1-g²) / (4π * (1 + g² - 2g*cos(θ))^(3/2))
g ∈ [-1,1]: g=0 isotropic, g>0 forward scattering
- Delta tracking (Woodcock tracking)
- Efficient unbiased sampling of heterogeneous volumes
- Uses majorant
σ_maj ≥ σ_t(x) everywhere — null collisions for rejection
- Subsurface scattering (SSS)
- BSSRDF:
S(x_i, ω_i, x_o, ω_o) — generalization of BRDF
- Dipole approximation: fast but limited
- Path-traced SSS: accurate but expensive
-
5.6 Path Guiding
- Learn the light distribution and sample it directly
- SD-Tree (Müller et al. 2017)
- Spatial tree (octree) × directional tree (quadtree)
- Adapts sampling distribution to the scene’s light field
- Neural radiance caching (NRC)
- Small neural network caches radiance at surface points
- NVIDIA NRC: trains in real-time, used in Cyberpunk 2077 path tracing
- Replaces long path tails with cached values — huge performance win
-
5.7 Caustics
- Focused light through specular surfaces (glass, water)
- Extremely difficult for path tracing (low probability paths)
- Photon mapping: shoot photons from lights, gather at shading point
- VCM (Vertex Connection and Merging): combines BDPT and photon mapping
-
5.8 Tone Mapping and Display
- PathTracer Learning - Concept - Tone Mapping
- HDR radiance → LDR display values
- ACES filmic, Reinhard, AgX
- Color spaces
- Always work in linear, convert to sRGB at output
- ACEScg: wide gamut, used in film production
- Rec. 2020: HDR display standard