When raytracing images, sample count has a massive impact on both quality and rendering performance. This corresponds to the number of rays within a pixel that were cast, which, when averaged out over many, many rays, eventually matches what the pixel should be. Think of it this way: if your first ray bounces directly into a bright light, and the second ray bounces into the vacuum of space, should the color be white? Black? Half-grey? Who knows! However, if you send 1000 rays with some randomized pattern, then the average is probably a lot closer to what it should be (which depends on how big the light is, what it bounces off of, etc.).
At Unite Austin, which started today, OTOY showed off an “AI temporal denoiser” algorithm for raytraced footage. Typically, an artist chooses a sample rate that looks good enough to the end viewer. In this case, the artist only needs to choose enough samples that an AI can create a good-enough video for the end user. While I’m curious how much performance is required in the inferencing stage, I do know how much a drop in sample rate can affect render times, and it’s a lot.
Check out OTOY’s video, embed above.
Wow that 10 samples denoised
Wow that 10 samples denoised looks good almost as good as the 50 samples before the 50 is denoised. So is this just a Nvidia thing or will the AI work on AMD’s cards? Looking at one of OTOY’s slide presentations online(OTOY GTC17 Presentation Slides: “The Future of GPU Rendering”) is demonstrated on Nvidia GTX 1080 GPU with that real time denoising and Nvidia’s GPUs do not have that much extra compute available to get such good results. So this AI is accelerated on the GPU?
I disagree – 10 samples was
I disagree – 10 samples was visibly worse than 50, with wild amounts of noise still present. The gap between 50 and 200 was not as noticeable. Watch it again, but instead of watching the car, watch the texture of the surrounding stack of concrete pipes, especially those on the left.
Did you mean 10 samples
Did you mean 10 samples Denoised or where you actually talking about the unprocessed 10 samples and really what difference is that going to make at 60+ FPS. So maybe there should have been some 10 samples AI/Denoised and 20 samples AI/denoised compared to the 50 samples/Denoised and non denoised at 50 samples to see if there is any marginal differences above 10 samples/denoised compared to the 50 samples non denoised and 50 samples denoised. Keep in mind that each extra sample is going to add to the processing needing to be done and there is no information on the amount of ray bounceses/Individal Ray Interaction numbers allowed settings per ray that also costs a lot in processing needed.
I’d like for there to be some Nvidia to AMD GPU testing results because any GPU accelerated Ray Tracing interaction processing will require GPU compute OpenCL(ROCm, AMD)/Cuda(Nvidia) and AMD’s Vega is a compute heavy GPU micro-arch with fully hardware based compute thread scheduling/dispatching. So there is Async-compute/shader resources to consider for AMD’s Vega micro-arch based GPUs that have an excess of Shader cores/compute to bring to bare if this IP is not some Nvidia proprietary IP and can be implemented in OpenCL/ROCm for AMD’s GPUs. There is alos Vega’s Primitive Shaders and some form of AI usage that may be able to be done on the Primitive Pipelines, and Vega’s rapid packed math for AI usage on AMD’s consumer Vega variants also.