Categories
Gaming Technology

Anti-Aliasing

I am not a graphics programmer. I have only passing knowledge of the graphics pipeline and could not code a shader to save my life. But as a gamer I am fascinated by the research behind anti-aliasing techniques, and so it was with great interest I read on Neogaf about the new AA technique being used in Farcry 4, Hybrid Reconstruction Anti-Aliasing, presented at SIGGRAPH 2014.

I am not a graphics programmer. I have only passing knowledge of the graphics pipeline and could not code a shader to save my life. But as a gamer I am fascinated by the research behind anti-aliasing techniques, and so it was with great interest I read on Neogaf about the new AA technique being used in Farcry 4, Hybrid Reconstruction Anti-Aliasing, presented at SIGGRAPH 2014. Of particular note is that this technique performs a little better on AMD’s latest graphics architecture, GCN, which is present in both current generation consoles. It suggests that, given the console focused development of most AAA game studios (and game engine studios), the next few years could see more research into graphical techniques optimised or more performant on the GCN architecture, and thus influence the direction of high-end graphics performance on the PC.

A Comparison of Anti-Aliasing Techniques

This Reddit post gives a pretty good explanation of the differences between the most common anti-aliasing options used up to now. The main gist of those differences that I want to point out is that AA techniques usually either work during the process of creating an image from the 3D objects, or on that rasterised image just before it is output to your display. The former will typically change the colour of a pixel in the image to be output, while the latter will usually apply a blur effect where it detects that there is an edge between one object and another.

Most games in the past few years offer a choice between the two major camps of anti-aliasing: Multisampling AA (or one of its related techniques – EQAA or CSAA) and a morphological AA technique, usually FXAA. FXAA was the cheaper option in terms of hit to graphics performance, and usually with a negligible visual difference to MSAA (Jeff Atwood of Coding Horror wrote a piece on this in 2011). After Atwood’s post in 2011, Subpixel Morphological Antialiasing was introduced by a team from Crytek and Universidad de Zaragoza. SMAA gained traction as a better looking alternative to FXAA after the movie on the SMAA website made the rounds on gaming forums and news sites, and an SMAA injector was released.

There is also the parent technique of MSAA, aka the grand-daddy of AA, which is Supersampling (SSAA), and is typically offered by games optimised in some way for PCs (e.g. The Witcher 2, Metro: Last Light). Because it essentially renders the game at double or quadruple the display resolution, it will destroy most video cards (figuratively speaking). Finally, TXAA is another family of anti-aliasing which is restricted to Nvidia cards (though AMD has an equivalent). Since I’ve not had an Nvidia card recently, I can offer little comment about how it looks.

Hybrid Reconstruction Anti-Aliasing

HRAA is a technique that appears to (again, I’m no graphics programmer) mix temporal anti-aliasing (TXAA is one such technique) with two other families of anti-aliasing: coverage-based anti-aliasing and analytical anti-aliasing. Temporal anti-aliasing analyses frames before the current frame and ensures that the colour of a pixel makes sense when moving from the last frame to the current frame. Coverage-based anti-aliasing is related to MSAA (CSAA is a coverage-based AA technique), and differs in that (basically) it looks at more 3D triangles that overlap and neighbour a particular pixel than MSAA does. Finally, analytical anti-aliasing looks at the distance between the pixel and the nearest vertical and horizontal edges.

The performance cost of HRAA is relatively low, greater than FXAA’s, but less than MSAA. However, the latest Nvidia architecture, Maxwell, removed support for CSAA and potentially may not be optimised for HRAA because of the lack of requisite direct access to coverage buffers in the graphics pipeline. This is the most interesting thing I took away from this is that potentially as we progress through this current generation of consoles the most impressive techniques for improving visuals will be optimised or restricted for the graphical architecture of the consoles – AMD’s GCN. That’s only my amateur observation though, and it’s not as if Nvidia will not pursue their own research on realtime rendering techniques and other parts of the game engine. Nvidia still has significant control over the physics middleware market with PhysX (with some impressive flying debris in the latest Batman games), have responded to AMD’s TressFX with HairWorks, and has previously developed TXAA and HBAO+. But for the next few years the largest proportion of graphics programming work in video games will be done on an AMD architecture.

By Benjamin Lay

Proprietor of this fine website, with interests ranging from video games to anime to amateur programming.

Leave a Reply