Tech Focus: The Rise of FXAA
Digital Foundry on NVIDIA's ultra-fast, high quality anti-aliasing technology
FXAA has already been implemented in various older forms (it icontinually evolving and improving) and has already been seen in PC titles such as Duke Nukem Forever, Crysis 2, Age of Conan and has picked up a number of glowing reviews from blogging game developers, hugely impressed with the results plus the quality of code itself, the tweakable variables on offer plus the extensive annotations accompanying the source.
It's clear that FXAA has a big part to play in improving image quality in a very efficient manner, and while all post-process anti-aliasing techniques will be challenged by sub-pixel detail, Timothy Lottes has been working on an interesting solution - to combine his technique with super-sampling, the process of downscaling the image from a higher resolution. Bearing in mind the sheer amount of untapped resources in many modern PC GPUs, it's a compelling approach.
"Applying FXAA before downscaling and averaging samples increases the quality of super-sampling, and with FXAA, fractional super-sampling works quite well: even when rendering only 1.7 times the number of pixels," he says.
"This enables the common deferred shading based game engine to transparently scale pixel quality along with GPU performance without going through the complexity of adding the variable rate shading required with hardware multi-sampling to maintain performance. An exciting real world application would be for a game to limit itself to 60Hz on the PC but use the left over GPU processing power to increase pixel quality using dynamic fractional super-sampling with FXAA."
Another exciting element of FXAA is the fact that it has been developed in a very open and collaborative manner. Timothy Lottes has posted a battery of source code revisions to his blog and has accommodated feature requests, bug-fixes and improvements suggested by game developers.
"Publishing preview source on my blog was a great way to get in touch with developers and get early feedback: feedback which has been instrumental in improving FXAA," Lottes tells us.
"Also from what I have seen, seems like developers are very open with their post process AA techniques. For example, the 2011 SIGGRAPH AA Course has a good representation from throughout the industry."
FXAA is also attracting positive comments from game developers in that NVIDIA has effectively developed this as a gift to the games industry, with Timothy Lottes confirming on Twitter that FXAA has a public domain license, meaning that anyone can utilise the code in their games.
Looking to the future, Timothy Lottes has his own views on where anti-aliasing is heading. More horsepower in the next generation of consoles should allow for more advanced techniques (perhaps along the lines of FXAA Quality) to be utilised.
"It's probably safe to assume that AA techniques which are only practical today on higher end PCs will be possible on next generation consoles," he explains.
"Given that AA quality is highly tied to the amount of GPU performance available per pixel rendered: assuming that next generation console GPU performance greatly increases while still targeting HDTV resolution, developers should have a lot more flexibility with regards to AA techniques. For example, I would be highly tempted to trade 1080p resolution for really good AA at 720p, however with 3D stereo I would go with the highest horizontal resolution possible, 1920, to maintain highest stereo separation detail, and possibly drop the vertical resolution. "