(both include speaker notes)
Two main ambient occlusion (AO) technologies are commonly used in game engines: baked AO (either per-vertex or with lightmaps) and screen-space AO (SSAO). Baked AO is well-suited for large-scale occlusion and SSAO for fine-scale occlusion; however, neither baked AO nor SSAO is well-suited for the medium scale.
In Sucker Punch’s 2011 game inFAMOUS 2, we added a couple of new ambient occlusion (AO) technologies to our engine to fill this gap. Called “AO fields” and “AO decals”, they work by precomputing the occlusion an object casts onto the space around it and storing that data in a texture, which is then applied in real-time much like a light in deferred shading.
AO fields and AO decals offer greater detail than per-vertex baked AO at a modest performance and memory cost, and they avoid some of the drawbacks of SSAO while still being partly dynamic.