Nvidia's next-generation Kepler GPU architecture made an appearance at Epic's panel session at this week's Game Developer Conference (GDC).
Samaritan has been regarded as a look into the distant future of gaming. Its graphics are so advanced that it was recently regarded as a fringe demo - requiring no fewer than three Nvidia GeForce GTX 580 graphics cards. That all changed with Epic demo at GDC, when it was unveiled that the Samaritan demo replaced the three GTC 580s with one Kepler GPU.
According to the demo, the Samaritan game can run on a single Kepler-based graphics card.
"Thanks to the increased graphics horsepower of the Kepler-based GPU and NVIDIA's new Fast Approximate Anti-Aliasing (FXAA) technology - an improvement to the industry?s established Multisample Anti-Aliasing technology - the Samaritan demo wowed the eager crowd in the standing-room-only panel session," Nvidia commented.
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 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 GPUs available VRAM, and led to increased paging and GPU memory thrashing, which can sometimes decrease framerates."
"FXAA is a shader-based anti-aliasing technique," however, and as such "doesn't require additional memory so it's much more performance friendly for deferred renderers such as Samaritan." By freeing up this additional memory developers will have the option of reinvesting it in additional textures or other niceties, increasing graphical fidelity even further.
FXAA can also produce gradients smoother than those of 4x MSAA, accordng to Nvidia.