Battlefield 1 HBAO vs. SSAO FPS (& What is Ambient Occlusion?)

By Published October 21, 2016 at 7:02 pm
  •  

The goal of this content is to show that HBAO and SSAO have negligible performance impact on Battlefield 1 performance when choosing between the two. This benchmark arose following our Battlefield 1 GPU performance analysis, which demonstrated consistent frametimes and frame delivery on both AMD and nVidia devices when using DirectX 11. Two of our YouTube commenters asked if HBAO would create a performance swing that would favor nVidia over AMD and, although we've discussed this topic with several games in the past, we decided to revisit for Battlefield 1. This time, we'll also spend a bit of time defining what ambient occlusion actually is, how screen-space occlusion relies on information strictly within the z-buffer, and then look at performance cost of HBAO in BF1.

We'd also recommend our previous graphics technology deep-dive, for folks who want a more technical explanation of what's going on for various AO technologies. Portions of this new article exist in the deep-dive.

(Above: GN's Andrew Coleman used Blender to visualize some of the AO discussion.)

Let's start with the name: Ambient Occlusion. Occlusion is the obstruction of one object by another, and ambient, in this case, is a reference to the ambient light source in game. For almost all games, ambient light comes from a single light source – for Battlefield, that's a faked sun, which is really just a light traced across a skybox. We recently spoke to Star Citizen's Sean Tracy about simulation of the sun for a source of light, and how it's a lot simpler than maybe people think. To create a realistic sun that traces realistic rays of light – and which is heliocentric, in the case of Star Citizen – is not normally what happens. Generally, the sun is an image of some kind with an intense source of light within it. In the case of day/night cycles, that light gets traced from one side of the sky to the other; it's not like the planet rotates.

Ambient light scatters more-or-less everywhere in-game with a mostly uniform pattern, so equal amounts of light meet at a single point. This light, however, is often contested by directional light sources (like a flash light, muzzle flare, lamps/torches), which make for uneven shadows and lighting on engaged surfaces. Occluded surfaces are the most noticeable as recipients of uneven shadowing and light, like the wrinkles in a face or the cracks in tessellated rock/tree surfaces.

Objects that are visible to the player but not visible to off-screen light sources will feel the most bereft of natural shading. The best, earliest example of this mix of directional and ambient light is the movie Toy Story, wherein Woody's mouth appears LED-backlit because of the mix of ambient and directional sources of light. This can be resolved with various AO techniques. For cinema, at least back then, it made sense to perform shadow tracing and render the effects in a farm. That doesn't work for real-time graphics, so gaming needed better solutions that cut corners for a mix of render speed and perceived quality.

AO methods help approximate shadowing of areas with mixed levels of light interaction. Gaming GPUs use SSAO, HDAO, HBAO, VXAO, or any number of other real-time ambient occlusion solutions. Screen-space, or SSAO, assumes the entire world is limited to the Z-buffer, so anything which exists outside of the Z-buffer, the camera's perspective, is not traced to calculate shading on screen. You may have also heard this term when we've previously talked about clock towers in a game like Assassin's Creed. Such a large object won't get drawn if the player can't see it (or all of it – see: z-culling), but that doesn't mean its light/shadow casting should change. That's often the case, but approximations (like voxelizing scene geometry) can help simulate the light/shadow effects without needlessly rendering all of the object's primitives.

gameworks-gdc-tank-light-1

Here's an example of that. This is an image of a tank with SSAO. Note that the underside of the tank isn't shaded, despite the fact that the underlying ground is occluded by the body of the tank. This happens because the tank's underside is not drawn in the z-buffer – it's not visible – and so we must instead turn to other techniques to resolve this issue.

gameworks-gdc-tank-light-2

VXAO is one of the newest methods of doing this and is used in Tomb Raider; this same image of the tank shows the change. VXAO isn't alone, though; other forms of AO, like AMD's HDAO and nVidia's HBAO+, have resolved issues with attenuation, out-of-frustum objects, noise and grain within the shadows, and discontinuity.

gameworks-gdc-tank-light-3

Something like VXAO would take geometric data and convert it into voxels, so that the pixel shader can use the z-buffer as input and perform per-point calculation to approximate shadowing. Learn more about VXAO here.

Let's get back to Battlefield 1. The question is: Does HBAO negatively impact AMD's performance in a way which is demonstrable, and a way which would make AMD look worse in benchmarks than nVidia?

The answer is “no, not really.” At least, not in this game. Battlefield 1 can run either screen-space or horizon-based ambient occlusion, which is from 2008 and well-documented at this point.

Our testing methodology is all the same as the Battlefield 1 GPU benchmark we published, so you can view or read that previous content if you have questions about drivers, test location, multiplayer and singleplayer scaling, or other curiosities.

The only difference is that we ran our new tests with Battlefield version 1.01, which includes performance optimizations overall within the game. For that reason, we rerean our Dx11 tests on two devices just for this specific HBAO vs. SSAO benchmark.

GN Test Bench 2015 Name Courtesy Of Cost
Video Card This is what we're testing! - -
CPU Intel i7-5930K CPU 3.8GHz iBUYPOWER   
$580
Memory Corsair Dominator 32GB 3200MHz Corsair $210
Motherboard EVGA X99 Classified GamersNexus $365
Power Supply NZXT 1200W HALE90 V2 NZXT $300
SSD HyperX Savage SSD Kingston Tech. $130
Case Top Deck Tech Station GamersNexus $250
CPU Cooler NZXT Kraken X41 CLC NZXT $110

Battlefield 1.01 Patch & Performance

bf1-patch-perf-improvement

First, here's a look at scaling we're seeing on Battlefield version 1.0 to version 1.01. We're getting about 1.5% better performance on the RX 480 and on the GTX 1080 – fairly uniform – though higher framerate gameplay with lower resolutions is posting a performance improvement of 3-3.9%. That's only really visible when we're already north of 100FPS, though. For tests where framerate is closer to 60-80FPS, we're seeing a 1.5% performance gain with BF version 1.01. Still, we retested with HBAO on and SSAO on with this newer version of the game, just to test this point.

HBAO vs. SSAO FPS in Battlefield 1

bf1-hbao-rx480-1440p

Here's a look at HBAO vs. SSAO on AMD's RX 480 with 1440p Ultra settings. There's no real impact. We're seeing a performance delta of 1.4% – or right around 1FPS. That's very nearly within normal test variance, though we always test multiple times and average the collection of results.

bf1-hbao-rx480-1080p

At 1080p with Ultra, the difference is about 3FPS – so a little more – from 90FPS AVG to 93FPS AVG. The lows are basically unimpacted.

The next thing to determine is how it plays out on nVidia, since we can't yet reach a conclusion with just this one settings change. All this does is tell us that a higher-quality ambient occlusion setting is more taxing, which everyone already knows.

bf1-hbao-gtx1080-4k

bf1-hbao-gtx1080-1440p

Here's nVidia's GTX 1080 at 4K High. We're seeing a performance swing of, again, 1.4%. That's the same as what we saw on AMD's hardware between SSAO and HBAO with a higher resolution. Reducing the GTX 1080's resolution to 1440p, our performance delta is now about 2FPS AVG. Disabling HBAO creates equal scaling between nVidia and AMD when the cards are more taxed – which was most of yesterday's tests. There is no significant difference. When the cards are more lightly taxed on pixel throughput, we're seeing an approximate 1% advantage for nVidia that becomes noticeable when already running 80-120FPS. Not really significant, in the scheme of things. Not at all, actually; the point where 1FPS becomes a necessary gain is the point where it makes more sense to reduce other settings.

Now, of course, there's an infinite amount more that could be tested. Note that, for instance, testing at lower graphics settings may exacerbate the performance impact of HBAO in the face of other settings reductions. That doesn't matter for us, though, as we're just showing the performance swing relative to our previous tests. HBAO as a default graphics option did not significantly impact those previous tests and, worst case, you can assume a 1% increase for AMD devices at higher framerates. The rabbit hole never ends. We are putting an end to it here, though; it is time for GN to shift its efforts toward other tests, like CPU benchmarks, and toward product reviews.

Editorial, Test Lead: Steve “Lelldorianx” Burke
Video Producer: Andrew “ColossalCake” Coleman
Test Technician: Andie “Draguelian” Burke

Last modified on October 21, 2016 at 7:02 pm
Steve Burke

Steve started GamersNexus back when it was just a cool name, and now it's grown into an expansive website with an overwhelming amount of features. He recalls his first difficult decision with GN's direction: "I didn't know whether or not I wanted 'Gamers' to have a possessive apostrophe -- I mean, grammatically it should, but I didn't like it in the name. It was ugly. I also had people who were typing apostrophes into the address bar - sigh. It made sense to just leave it as 'Gamers.'"

First world problems, Steve. First world problems.

  VigLink badge