Now that the background is out of the way, it’s time to talk about what we used in The Order to combat aliasing. In the end the tools we used weren’t particularly novel or exotic, but it was still important to choose the right ingredients.
The first component was EQAA, which is a variant of MSAA available on AMD GPU’s. Like Nvidia’s CSAA, it essentially lets you decouple MSAA fragment storage from coverage computations so that you can more finely tune the balance between quality and performance/memory. For The Order we used 2 color fragments and 4 coverage samples, which puts the raw quality somewhere between 2x and 4x MSAA if you’re using a standard hardware resolve.
To increase stability, we wrote a custom resolve shader that uses a wider, higher-order reconstruction filter instead of the typical box filter that’s used in hardware. This essentially let us smooth out the signal a bit while resampling, in order to give a result that was more stable under motion.
Finally, we combined our resolve pass with a fairly standard temporal antialiasing component. This is done primarily to reduce flickering from shader aliasing, by tracking and reprojecting surface samples from previous frames.