AMBIENT OCCLUSION

In 1994, at the Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques, Gavin Miller and Peter Litwinowicz published a paper on “Efficient techniques for interactive texture placement”. This paper describes efficient algorithms for the placement and distortion of textures. The textures include surface color maps and environment maps. Affine transformations of a texture, as well as localized warps, are used to align features in the texture with features of the model. Image-space caches are used to enable texture placement in real time.

Ambient Occlusion (AO) is a visual effect that was originally developed by Industrial Light and Magic (ILM) and used in the 2001 film Pearl Harbor. It attempts to approximate the way light radiates in real life, especially off what are normally considered non-reflective surfaces which is nominally what radiosity endeavors to do. The soft appearance achieved by ambient occlusion alone is similar to the way an object appears on an overcast day. The most distinct change is that smooth shadows have been added to the image. Unlike standard shadows which appear as solid regions enclosed by blurred edges, AO based shadows have wide and smooth gradations.

Later on in September 2008, NVIDIA published a variant called horizon based ambient occlusion (HBAO) which is a physically-based algorithm that approximates an integral with depth buffer sampling. In other words, the upgrade enables HBAO to generate higher-quality AO whilst increasing the definition, quality, and visibility of the AO shadowing. For performance reasons, however, HBAO is typically rendered at half-resolution, as in Battlefield: Bad Company 2 and Battlefield 3, reducing the number of AO pixels by three-quarters . Unfortunately, rendering HBAO at reduced resolutions inevitably causes flickering that is challenging to hide in all situations Battlefield 3’s HBAO selective temporal filtering helps, but in some cases flickering persists.

SCREEN SPACE AMBIENT OCCLUSION

Screen space ambient occlusion (SSAO) is a computer graphics technique for efficiently approximating the ambient occlusion effect in real time. The algorithm is implemented as a high level pixel shader, analyzing the scene depth buffer which is stored in a texture. For every pixel on the screen, the pixel shader samples the depth values around the current pixel and tries to compute the amount of occlusion from each of the sampled points. In its simplest implementation, the occlusion factor depends only on the depth difference between sampled point and current point.

GAMES AND AMBIENT OCCLUSION

We tried enabling SSAO with Brink on a GTX 260 and it reduced the game’s frame rate from 60 fps to 30 fps which is a very heavy performance hit. This suggests a much more powerful video card is needed to do AO faster. Aliens vs. Predator features AO and a GTX 260 can play this game in medium or even high and maintain a very playable framerate even at 1920×1080. Faster cards like the Sapphire HD 6970 are adequately powerful for SSAO. We estimate that this option in Brink requires approximately 250 GFLOPS. Other games may be less demanding.