# 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
1. Transition zone blend between parent and children contributions (area-ratio modulate parent) to smooth level discontinuities.
2. Place finest disks at face centroids (not vertices).
3. 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.

