Click here to sign up for our newsletter & receive a £5 voucher![close]
×

Registration

Profile Informations

Login Details

or login

First name is required!
Last name is required!
First name is not valid!
Last name is not valid!
This is not an email address!
Email address is required!
This email is already registered!
Password is required!
Enter a valid password!
Please enter 6 or more characters!
Please enter 16 or less characters!
Passwords are not same!
Terms and Conditions are required!
Email or Password is wrong!

NVIDIA Adds Adaptive Temporal Antialiasing To Its Ray Tracing Toolbox For GeForce

The future of graphics may very well be in real-time ray tracing, provided the hardware advances to the point where it can handle the added demands the technology requires. Slowly but surely we are getting there. In the meantime, NVIDIA is doing some interesting things in graphics, the latest of which is developing a pragmatic algorithm for real-time adaptive supersampling in games.

NVIDIA's algorithm extends temporal antialiasing (TAA) of rasterized images with adaptive ray tracing, and just as importantly, it conforms to the constraints of a commercial game engine and today's GPU ray tracing APIs, the company says. If that sounds like a bunch of techno-gibberish, the takeaway is it leverages ray tracing on today's tech to enable even prettier graphics.

"The algorithm removes blurring and ghosting artifacts associated with standard temporal antialiasing and achieves quality approaching 8X supersampling of geometry, shading, and materials while staying within the 33ms frame budget required of most games," NVIDIA explains.


A modern house scene in Unreal Engine 4 with deferred shading, ray traced shadows, and NVIDIA's adaptive temporal antialiasing technique rendered on a Titan V.
To demonstrate the image quality that is achievable with this method, NVIDIA implemented the adaptive temporal antialiasing (ATAA) algorithm in Unreal Engine 4 and ran it with a Titan V graphics card in Windows 10. On such a setup, NVIDIA says ATAA runs in 18.4ms at 8x supersampling, 9.3mx at 4x supersamping, and 4.6ms at 2x supersampling in one of its demo images, at 1920x1080.

"Primary surface aliasing is a cornerstone problem in computer
graphics. The best known solution for offline rendering is adaptive
supersampling. This was previously impractical for rasterization
renderers in the context of complex materials and scenes because
there was no way to efficiently rasterize sparse pixels. Even the
most efficient GPU ray tracers required duplicated shaders and
scene data," NVIDIA explains in a white paper.

NVIDIA's fancy algorithm presents a practical solution to the problem, though do not expect to see it rolled out to the current generation of GeForce cards. This method is dominated by the ray trace and requires a fair amount of horsepower. However, NVIDIA says it is not that concerned with this, given that mainstream gaming GPUs have not yet appeared that support the related DirectX Ray Tracing (DXR) API.

"The real-time ray tracing ecosystem of drivers, GPUs, and
algorithms must emerge together over the next few years," NVIDIA concludes.

').insertAfter(jQuery('#initdisqus'));
}
loadDisqus(jQuery('#initdisqus'), disqus_identifier, url);

}
else {
setTimeout(function () { disqusDefer(); }, 50);
}
}

disqusDefer();

function loadDisqus(source, identifier, url) {

if (jQuery("#disqus_thread").length) {
jQuery("#disqus_thread").remove();
}
jQuery('

').insertAfter(source);

if (window.DISQUS) {

DISQUS.reset({
reload: true,
config: function () {
this.page.identifier = identifier;
this.page.url = url;
}
});

} else {

//insert a wrapper in HTML after the relevant "show comments" link

disqus_identifier = identifier; //set the identifier argument
disqus_url = url; //set the permalink argument

//append the Disqus embed script to HTML
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
jQuery('head').append(dsq);

}

jQuery('.show-disqus').show();
source.hide();
};

function disqusEvent()
{
idleTime = 0;
}

Go to Source