Scalable Ambient Obscurance

in Proceedings of ACM SIGGRAPH / Eurographics High-Performance Graphics 2012 (HPG '12)

Morgan McGuire, NVIDIA and Williams College
Michael Mara, NVIDIA
David Luebke, NVIDIA

Paper (PDF preprint)
Demo + Source (117 MB)
Presentation (
Presentation (PDF)

Result Video

ACM Copyright Notice Copyright by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or The definitive version of this paper can be found at ACM's Digital Library


This paper presents a set of architecture-aware performance and integration improvements for a recent screen-space ambient obscurance algorithm. These improvements collectively produce a 7x performance increase at 2560x1600, generalize the algorithm to both forward and deferred renderers, and eliminate the radius- and scene-dependence of the previous algorithm to provide a hard real-time guarantee of fixed execution time. The optimizations build on three strategies: pre-filter the depth buffer to maximize memory hierarchy efficiency; reduce total bandwidth by carefully reconstructing positions and normals at high precision from a depth buffer; and exploit low-level intra- and inter-thread techniques for parallel, floating-point architectures.


We thank Naty Hoffman (Activision Studio Central), Leonardo Zide (Treyarch), and Louis Bavoil (NVIDIA) for their input on this paper and implementation, Guedis Cardenas (Williams) for his work in the Williams graphics lab, and Michael Bukowski, Brian Osman, Padraic Hennessy and the rest of the team at Vicarious Visions for access to their original AlchemyAO source code and helping to tune the latest version for production use. Thanks to Eric Haines and Peter-Pike Sloan for comments on the paper itself.

The DX11 HLSL shader implementation is a port of our code provided by Leonardo Zide (Treyarch).

Result Video



  author = {Morgan McGuire and Michael Mara and David Luebke},
  title = {Scalable Ambient Obscurance},
  month = {June},
  year = {2012},
  booktitle = {High-Performance Graphics 2012},
  location = {Paris, France},
  url = {}