NVIDIA points out that Epic Games presented a new "Samaritan" Unreal Engine 3 tech demo at GDC 2012. Last year it took three GeForce GTX 580 graphics cards to run the demo but this time Epic achieved it with one of NVIDIA's upcoming Kepler graphics cards.
At the conclusion of the demo the card in question was revealed to be our much-anticipated ‘Kepler’ GPU, the follow-up to our current-generation Fermi card. Although no further information on Kepler was given, the demo sent a clear message: the graphics in Samaritan, generally regarded as a glimpse of the gaming industry’s far-off future, will in fact be possible in the near future on PC systems running a single next-generation graphics card.
But it wasn't just the Kepler graphics card that made the demo possible. As important was the addition of Fast Approximate Anti-Aliasing (FXAA), an NVIDIA-developed anti-aliasing technique aiming to improve upon the established success of Multisample Anti-Aliasing (MSAA), the form of anti-aliasing most commonly seen in today’s games. Used to smooth out jagged edges and improve visual fidelity, anti-aliasing is key to creating the incredible sights of Samaritan.
Despite MSAA's popularity, "it is relatively costly in the demo because Samaritan uses deferred shading," explains Ignacio Llamas, a Senior Research Scientist at NVIDIA who worked with Epic on the FXAA implementation. By writing pixel attributes to off-screen render targets prior to final shading, deferred shading enables complex, realistic lighting effects that would be otherwise impossible using forward rendering, a lighting technique commonly used in many game engines. There are a couple of downsides to this: first the render targets require four times the memory since they must hold the information of four samples per pixel; and second, the deferred shading work is also multiplied by four in areas with numerous pieces of intersecting geometry.
"Without anti-aliasing, Samaritan’s lighting pass uses about 120MB of GPU memory. Enabling 4x MSAA consumes close to 500MB, or a third of what's available on the GTX 580. This increased memory pressure makes it more challenging to fit the demo’s highly detailed textures into the GPU’s available VRAM, and led to increased paging and GPU memory thrashing, which can sometimes decrease framerates.”
Epic Games also gave an update regarding the Unreal Engine that runs inside Adobe's Flash Player. This project currently only works in Internet Explorer but Epic has plans to roll it out for all browsers across all platforms.