HBAO+

Technology

To create realistic shadowing around objects, developers use an effect called Ambient Occlusion (AO). Unlike traditional shadowing, AO can account for the occlusion of light, creating non-uniform shadows that add depth to the scene. Most commonly, games use Screen Space Ambient Occlusion (SSAO) for the rendering of AO effects. There are many variants, though all are based on early AO tech, and as such suffer from a lack of shadow definition and quality, resulting in a minimal increase in image quality (IQ) compared to the same scene without AO.

At the 2008 SIGGRAPH tech conference NVIDIA introduced an upgraded SSAO variant called Horizon Based Ambient Occlusion (HBAO). Unlike previous SSAO variants, HBAO uses a physically-based algorithm that approximates an integral with depth buffer sampling. In other words, the upgrade enables HBAO to generate higher-quality SSAO 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.

To overcome these issues, NVIDIA’s Louis Bavoil has completely redeveloped and revamped Screen Space Ambient Occlusion to create HBAO+, a paradigm shift in the field of SSAO rendering. In comparison to HBAO, HBAO+ doubles the detail level of the AO effect, runs three times faster, and uses the latest DirectX 11 technologies.

HBAO+ provides cutting-edge shadow tech for Splinter Cell Blacklist.
The world of Tom Clancy’s Splinter Cell Blacklist is full of shadows, demanding new, cutting-edge shadow tech that only HBAO+ can provide.

The first goal for Louis at the outset of his work was to create an AO technique that could be rendered fast enough at full resolution at 1920x1200, on a modern GPU like the GeForce GTX 660. HBAO offered good definition at full resolution, but its crippling performance impact made it impractical for modern games, and when it was used at a reduced resolution it still had a heavy impact on frame rates in comparison to SSAO.

Louis’s second goal was to maximize the efficiency of the AO implementation by leveraging the software advances brought to the table by DirectX 11 when launched it in 2009 (in particular texture arrays and gather4 instructions). Ultimately, the new DirectX 11 hardware and software enabled Louis to render HBAO+ with a fast Interleaved Rendering technique instead of a slow Fullscreen Pass.

Louis’s third and final goal was to improve the visual fidelity of HBAO+ in comparison to HBAO, especially in scenes with grass, leaves, and other fine detail. As seen in Far Cry 3, HBAO struggled in such situations, creating overbearing, solid areas of shadowing.

HBAO+ helps to create a realistic scene lit by the sun and man-made lights.
HBAO+ is as-important when outside, helping to create a realistic scene lit by the sun and man-made lights.

The result of Louis’s work is a more accurate Ambient Occlusion technique, with weighty shadows that are better defined, more accurate, and more visible. Below, you can view an interactive comparison that shows a scene with all textures and game elements removed, leaving only the Ambient Occlusion shadowing, enabling an easy comparison between the new and old techniques.

HBAO+ Ambient Occlusion shadowing is far more accurate, sitting correctly on and around objects in a non-uniform fashion
Click to load: Note how the HBAO+ Ambient Occlusion shadowing is far more accurate, sitting correctly on and around objects in a non-uniform fashion . Also note the fence-like area towards the rear of the image. With HBAO, the technique’s poor sampling quality results in the area being uniformly shadowed, similar to the grass situation in Far Cry 3. In this demo , on a GTX 680 at 1920x1200, HBAO+ is over three times faster than HBAO, dramatically improving the frame rate.

As you can see, HBAO+ is better in every way in comparison to HBAO, which is rendered at full resolution in the example above. At half-resolution, the quality and precision of HBAO would be further reduced and the image quality of the effect lessened.

To measure the speed of AO techniques we record the time it takes for the calculation and rendering of one frame of AO to occur, from the game to the GPU, to the monitor. Using development tools, at a screen resolution of 1920x1080 on a GeForce GTX 680 clocked and locked at 1058 MHz, we recorded the speed of each Splinter Cell Blacklist AO option in a fixed scene, shown below in greyscale.

Greyscale capture of Splinter Cell Blacklist AO option in a fixed scene.

AO Technique

Resolution

Occlusion Samples
Per AO Pixel

GPU Cost
(milliseconds per frame)

SSAO

Half

16

1.3

SSAO+

Full

16

4.6

HBAO

Full

4

1.0

HBAO+

Full

36

2.4

 

In Blacklist, Ubisoft’s full-resolution “SSAO+” technique offers superior image quality in comparison to half-resolution “SSAO”, but seriously impacts the frame rate in the process, running 3.3 milliseconds per frame slower. HBAO’s implementation, meanwhile, runs at full-resolution but with only 4 occlusion samples per pixel, far fewer than the 16 used for SSAO and SSAO+. The trade-off is an increase in performance and an AO’d image with its own, separate set of issues.

Full-resolution NVIDIA HBAO+, in comparison, is nearly twice as fast as the next-best Blacklist AO technique, SSAO+, and achieves this feat with more than double the number of occlusion samples. The result is a speedy implementation that offers a far richer, more detailed image than the other techniques.

For maximum image quality, select “Field AO & HBAO+” in the Splinter Cell Blacklist options menu to add extra AO shadowing to characters, vehicles and a few unique objects.
For maximum image quality, select “Field AO & HBAO+” in the Splinter Cell Blacklist options menu to add extra AO shadowing to characters, vehicles and a few unique objects.

HBAO+ is the Ambient Occlusion option of choice. Its image quality exceeds that of any other technique, it’s the most-efficient full-resolution AO option, the first to use cache-efficient Interleaved Rendering technology, and the first to virtually eliminate flickering and under-sampling artifacts. Best of all, HBAO+ won’t have a noticeable impact on your frame rate when rendering all of its excellent AO shadowing at an exceptional level of detail.

As of 331.40 beta, HBAO+ is built directly into the NVIDIA Control Panel, enabling the enhancement of hundreds of games. For further details please head here.