Chapter 12. High-Quality Ambient Occlusion — Hoberock, Jia
- Source: https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-12-high-quality-ambient-occlusion
- Volume: GPU Gems 3
- Note: add-only excerpt for wiki ingest; images omitted; prose and key listings kept.
Summary of full chapter read
Extends Bunnell 2005 (GPU Gems 2) disk-based hierarchical AO. Original: disks at vertices, form-factor occlusion summed with O(n log n) tree traversal; iterates using occlusion-as-visibility.
Artifacts of original
Per-vertex → linear interpolation + missing contact shadows. Per-fragment or denser tessellation → disk-shaped discontinuities at tree-level boundaries + pinching near fine disks (1/r² blow-up).
Fixes
- Transition zone blend between parent and children contributions (area-ratio modulate parent) to smooth level discontinuities.
- Place finest disks at face centroids (not vertices).
- At leaves evaluate analytic point-to-polygon form factor (Sillion & Puech) after clipping triangle to shading-point support plane (visible quad).
Practical knobs
Force convergence with weighted min of last two iterations (oscillation in enclosed scenes). Distance attenuation 1/(1+k r²) brightens closed rooms. Triangle attenuation pow(elementOcclusion, α) emphasizes creases. Can swap solidAngle for multipleScattering (Jensen & Buhler) for SSS on same hierarchy.