Bad Company 2 and SSAA - FSAA Isn't FSAA?

eddieck

Gawd
Joined
Dec 13, 2009
Messages
1,010
I've noticed some oddities with Bad Company 2 and NVIDIA's sparse-grid SSAA implementation.

I'm running a single GTX 580 with Windows 7 x64 and the latest 263.09 driver, but this issue also occurs with the 262.99 driver.

I play at my native resolution of 1920x1080 on a single display.

Summary

Despite how well-done the PC port of Bad Company 2 is (compared to other games like GTA4), it suffers from several issues that can be attributed to Frostbite being a console engine. One such issue is its MSAA implementation. Presumably for performance reasons on consoles, the built-in Frostbite MSAA implementation seems to only apply MSAA to nearby objects. In addition, the game suffers from noticeable shader aliasing in some areas.

The first thing I tried is to go to the NVCP and enable a 4xMSAA override. Theoretically, since the driver is applying the MSAA, it would apply to all objects. Unfortunately, NVIDIA has added an exception flag causing the "override any application setting" mode to be ignored. Even if you remove that flag using NVIDIA Inspector, the result is no different than enabling MSAA in-game.

The MSAA implementation being poor, as well as the shader aliasing, would seem to make this game a good choice for SSAA. I enabled 4xMSAA in-game (a requirement of NVIDIA's transparency SGSSAA implementation) and enabled 4xSGSSAA using NVIDIA Inspector, and there's a noticeable difference - for the better. (Performance also changed, for the worse, so SSAA appeared to be working.)

However, after playing it for a bit, I noticed something interesting. Distant objects are still not getting any anti-aliasing applied to them. This is strange because SSAA is full-screen AA - it's not a matter of 'applying' it to certain objects. It's a brute-force method that should be rendering the entire screen at 3840x2160 and then downscaling it - everything should be anti-aliased perfectly.

Every screenshot that follows will be using the following settings:

  • Level of Detail: High
  • Texture Quality: High
  • Shadow Quality: High
  • Effects Quality: High
  • MSAA (in-game): 4x
  • Anisotropic Filtering (in-game): 16x
  • HBAO: Disabled
  • Bloom: Disabled (manually)
  • FOV: 59* vertical FOV (90* horizontal)
  • DirectX 11
Comparison Screenshots

I wanted to show that there is a difference between 4xMSAA, 4x transparency SSAA and 4xSGSSAA. I also wanted to rule out the possibility of 4xTrSSAA actually being applied and not the 4xSGSSAA full-screen AA I selected.

All of these screenshots were taken at the first attacker spawn on the new Oasis map, with no other players. I carefully avoided any mouse movements to ensure the screenshots can be easily compared.

4xMSAA In-Game (No Transparency SSAA or SGSSAA)



Fraps recorded 160-165 FPS rendering this.

In this image, aliasing on the nearby stair steps, the trees, and the far house located near the UAV station, is evident.

4xMSAA In-Game with 4xTrSSAA (Not Full-Screen SGSSAA)



Fraps recorded 145-150 FPS rendering this.

The anti-aliasing on the nearby palm tree is evident. In addition, the stairs seem to be anti-aliased as well - that was surprising. No anti-aliasing appears to be applied to the palm trees near the tanks.

4xMSAA In-Game with 4xSGSSAA



Unfortunately, I wasn't able to spawn in the same place (tried several times on different servers), so I had to walk there. I tried to get the location as close as possible.

Fraps recorded about 80 FPS rendering this.

Anti-aliasing on the nearby palm trees, the gun, and stairs looks better than the 4xMSAA image. However, far objects are still not anti-aliased at all.

FSAA Isn't FSAA?

In theory, rendering at twice the output resolution and downscaling should result in almost perfect image quality. However, in these screenshots, it is evident that only the objects Frostbite's MSAA implementation anti-alias, are being anti-aliased by SSAA. Since this is FSAA, I'm not sure how this is happening.

Any thoughts?
 
Back
Top