Better Visuals Part 3 – The Royal Downsampler

Downsampling works by getting your monitor to resample a higher resolution image to fit the screen and a by-product of this is an anti-aliasing effect. For example, if your native resolution is 1080p you could tell your game to run at 1440p and then your monitor will do the 1440->1080 conversion. To do this you need to use a tool to add the new resolution to Windows. For Nvidia cards the tool is included in the driver control panel but AMD/ATi owners need to download an external tool. The effect is hard to show in screenshots but it definitely looks great in motion and the best thing is that it works on every game. Obviously the drawback is the performance hit of running at the higher resolution but if you’ve got a game that runs well you can get really nice image quality from downsampling.

Downsampling in action in IL2^^ IL2 downsampled from 2560×1440 to 1920×1080

Links:
Nvidia Guide to Downsampling
AMD Guide to Downsampling

Better Visuals Part 2: Injection perfection

So if your favourite DX9/10/11 game doesn’t have built-in PPAA support and the driver-level stuff makes the GUI look gooey then what’s the solution? Injection. By injecting some code to catch the final rendered image and apply post-processing filters you can have PPAA on almost any game. Some games require that you turn off in-game AA and some 3rd party overlays can cause issues (Steam, Origin, Afterburner), but in general, 60% of the time it works every time. Installation involves copying a few files to the game directory and the injector handles the rest. Over time the basic PPAA injectors have evolved into suites of filters that can effect the sharpness, vibrance, gamma and other properties of the final image. FXAATool and SweetFX are becoming the most popular of these.

Far Cry 3 with SweetFX

For AMD/ATi users there is a tool called RadeonPro that allows you to create profiles to tweak all the visual aspects of your game. It includes SweetFX integration support and experimental features like Ambient Occlusion (self-shadowing). It can take screenshots, make videos, overclock your card, show an on-screen display and, critically, can get all the SweetFX features working on 64-bit executables (standalone SweetFX is limited to 32-bit). This would be important if you wanted PPAA in 64-bit games like DCS World.

Prince of Persia with SweetFX splitscreen

Part 3 will conclude this guide to Better Visuals with a look at downsampling.

Links:
SweetFX Configurator (SweetFX and a GUI to help configure the various filters)
Radeon Pro (grab SweetFX below to enable it through RadeonPro)
SweetFX v1.4
FXAA Tool

j2p0_dish1

Better Visuals Part 1: Post-processing AA

aacomp

Anti-aliasing. We all love it but it costs too much. In modern games running 4xMSAA at 1080p and higher resolutions is going to cost you 25%+ of your framerate. Now if you’ve got the GPU grunt to push 100+ FPS then 25% won’t hurt you but if you’re on the limit of playability (30-40FPS) then you have to compromise by dropping AA or reducing other settings to maintain fluidity. This is where post-process anti-aliasing (PPAA) comes in.

Removing aliased edges in a post-processing step is faster and uses less memory as you are working with a texture and not a scene. There are lots of flavours of PPAA all with instantly forgettable four letter acronyms. The most basic (i.e. blunt-force) methods perform the GPU equivalent of slapping vaseline on the lens. The result, as you can imagine, is a softened, blurry mess that also smudges the UI. ATI’s MLAA and Nvidia’s driver-level FXAA fall into this category along with a few other less well known versions. If developers decide to include the likes of FXAA in their games then they can prevent the UIs being filtered and you get good performance and image quality. Deus Ex Human Revolution and ARMA 2 are two examples of this approach. Then we have SMAA which looks to tick all the boxes in terms of smoothing aliasing without introducing the vaseline effect and all with a relatively small performance hit. Most PPAA methods work only in engines using DX9 and above (FXAA works for OpenGL) but with the older engines you should be able to use standard AA and not run into performance problems.

Another issue with traditional anti-aliasing methods is that they consume large amounts of VRAM especially if you try supersampling or edge-detect modes. FXAA/SMAA do not have high VRAM overhead.

ppaa

Part 2 will deal with how to get these nice PPAA methods working in your games.