The Alchemy screen-space
ambient obscurance algorithm

in Proceedings of ACM SIGGRAPH / Eurographics High-Performance Graphics 2011 (HPG '11)

Morgan McGuire, NVIDIA Research and Williams College
Brian Osman, Vicarious Visions
Michael Bukowski, Vicarious Visions
Padraic Hennessy, Vicarious Visions

Paper (PDF preprint)
Presentation (PPTX)
Presentation (PDF, low-resolution)
Subsequent Work

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


Ambient obscurance (AO) produces perceptually important illumination effects such as darkened corners, cracks, and wrinkles; proximity darkening; and contact shadows. We present the AO algorithm from the Alchemy engine used at Vicarious Visions in commercial games. It is based on a new derivation of screen-space obscurance for robustness, and the insight that a falloff function can cancel terms in a visibility integral to favor efficient operations. Alchemy creates contact shadows that conform to surfaces, captures obscurance from geometry of varying scale, and provides four intuitive appearance parameters: world-space radius and bias, and aesthetic intensity and contrast. The algorithm estimates obscurance at a pixel from sample points read from depth and normal buffers. It processes dynamic scenes at HD 720p resolution in about 4.5 ms on Xbox 360 and 3 ms on NVIDIA GeForce580.

Result Video


We significantly optimized the performance of Alchemy AO while maintaining its quality and derivation in the followup work on Scalable Ambient Obscurance. The page for that paper contains a working reference implementation with full source code for OpenGL and DirectX.


We thank Naty Hoffman (Activision Studio Central) for checking the equations carefully and supporting the publication of algorithms used in games published by Activision, artists Nathan Hawkinson, Justin Wharton, Kevin Dobler, and Brent Gibson who created the game scenes used in this paper, and the entire team at Vicarious Visions.


  author = {Morgan McGuire and Brian Osman and Michael Bukowski and Padraic Hennessy},
  title = {The Alchemy Screen-Space Ambient Obscurance Algorithm},
  month = {August},
  year = {2011},
  booktitle = {High-Performance Graphics 2011},
  location = {Vancouver, BC, Canada},
  url = {}