Aggregate G-Buffer Anti-Aliasing in Unreal Engine 4
Louis Bavoil ; Cyril CrassinSiggraph 2016 Course - Advances in Real-Time Rendering in Games (conference)
Abstract
In recent years, variants of Temporal Anti-Aliasing (TAA) have become the techniques of choice for fast post-process anti-aliasing, approximating super-sampled AA amortized over multiple frames. While TAA generally greatly improves quality over previous post-process AA algorithms, the approach can also suffer from inherent artifacts, namely ghosting and flickering, in the presence of complex sub-pixel geometry and/or sub-pixel specular highlights. In this talk, we will share our experience from implementing Aggregate G-Buffer Anti-Aliasing (AGAA) in Unreal Engine 4. AGAA approximates deferred lighting from a 4x or 8x super-sampled G-Buffer while maintaining a low shading rate per pixel (at most two lighting evaluations per pixel). This decoupling is achieved by clustering the G-Buffer samples and pre-filtering their geometric and shading attributes into pixel-space aggregates. We will start with a recap of the general benefits of normal map and surface curvature pre-filtering and detail how we have implemented them in the deferred renderer of UE4. We will then present the AGAA technique and its prerequisites in a game engine. We will describe the changes that we made to the engine to implement AGAA (clustering, on-the-fly aggregation, and resolve), the interactions with translucency and HDR lighting, and finally how temporal reprojection can be used with AGAA to further improve image quality.
BibTex references
author = {Louis Bavoil and Cyril Crassin},
title = {Aggregate G-Buffer Anti-Aliasing in Unreal Engine 4},
url = {/research/publications/BC16/AGAA_UE4_SG2016_slides.pdf, Slides},
year = {2016},
date = {2016-07-25},
booktitle = {Siggraph 2016 Course - Advances in Real-Time Rendering in Games},
}