The Future of Anti-Aliasing

Having gained a good understanding of the many sampling-based and analytical anti-aliasing methods which are widely used in games right now, the time has come for some speculation. With a new generation of consoles just released and raising the baseline of technology, which anti-aliasing techniques will we be seeing on these platforms? How will the drawbacks of existing methods be mitigated, and can new hardware enable new algorithms?

Well, part of the future is already here: combined sampling and analytical anti-aliasing methods. These algorithms take multiple samples of a scene – either by means of traditional multi- or super-sampling or via temporal accumulation across frames – and combine them with analysis to generate a final anti-aliased image. This allows them to mitigate the sub-pixel and temporal instability issues of single-sample purely analytical methods, while still providing much better results on geometry edges than a pure sampling method with similar performance characteristics. A very simple combination of additional sampling and analytical AA can be achieved by combining a single-sample analytical technique such as FXAA with downsampling from a higher-resolution buffer. More involved examples of such methods are SMAA T2x, SMAA S2x and SMAA 4x, as well as TXAA. The SMAA methods are explained and compared in detail in this paper, while NVIDIA provide their own take on TXAA here. It is very likely that combined methods such as these will be used more widely in the future.

Another option which has not yet found widespread use, but may be promising for the future is the encoding of additional geometry information during rendering, which can later be used in an analytical anti-aliasing step. Examples of this include Geometric Post-process Anti-Aliasing (GPAA) and Geometry Buffer Anti-Aliasing (GBAA), demos of which are available here.

Finally, the shared CPU and GPU memory pool of the upcoming console platforms and future PC architectures may enable techniques designed specifically to make use of these shared resources. In the recent paper "Asynchronous Adaptive Anti-aliasing Using Shared Memory" Barringer and Möller describe a technique which performs traditional single-sample rendering, while at the same time detecting important pixels (e.g. those on an edge) and rasterizing additional sparse samples for those on the CPU [5]. While this requires a major restructuring of how rendering is generally performed, the results are promising.

References

[1] A. Reshetov, ‘Morphological antialiasing’, in Proceedings of the Conference on High Performance Graphics 2009 HPG ’09, New York, NY, USA, 2009, pp. 109–116.

[2] J. Bloomenthal, ‘Edge Inference with Applications to Antialiasing’, ACM SIGGRAPH Comput. Graph., vol. 17, no. 3, pp. 157–162, Jul. 1983.

[3] T. Isshiki and H. Kunieda, ‘Efficient anti-aliasing algorithm for computer generated images’, in Proceedings of the 1999 IEEE International Symposium on Circuits and Systems ISCAS ’99, Orlando, FL, 1999, vol. 4, pp. 532–535.

[4] J. Jimenez, J. I. Echevarria, T. Sousa, and D. Gutierrez, ‘SMAA: Enhanced Subpixel Morphological Antialiasing’, Comput. Graph. Forum, vol. 31, no. 2pt1, pp. 355–364, May 2012.

[5] R. Barringer and T. Akenine-Möller, ‘A 4: asynchronous adaptive anti-aliasing using shared memory’, ACM Trans. Graph., vol. 32, no. 4, pp. 100:1–100:10, Jul. 2013.