Ray Tracing Essentials Part 7: Denoising for Ray Tracing

NVIDIA Developer · Beginner ·📰 AI News & Updates ·6y ago
Skills: CV Basics80%

Key Takeaways

Explains the process of denoising for ray tracing to achieve realistic and high-quality images at interactive rates

Full Transcript

I'm Eric Haines for NVIDIA and this talk is about denoising for ray tracing I have a quote today from Daphne color a Sanford professor who works on AI for biomedical applications she says the world is noisy and messy you need to deal with the noise and uncertainty this is particularly good for ray tracing because ray tracing can be extremely noisy on the left you'll see an image that has five samples per pixel using path tracing and you can see it's quite noisy there's a lot of black pixels that where light just didn't get anywhere near where we needed it to after 50 samples that's starting to look better 500 better yet 5000 it's looking pretty darn good and if you looked at really closely you'd still see some noise in there and in fact films themselves have this problem where they'll shoot 3,000 Ray's per pixel but they'll still see some noise so what they'll use and what we're going to use today is a process called denoising to make those images better and you can see there's a diminishing return here it's pretty much the variance goes down with the square root of the number of samples so if you go from say four samples that's twice as good as just one sample nine samples that's three times as good as one sample but it's diminishing returns so we just can't afford to shoot 5,000 Ray's per pixel right now so we have to do something else and as they say that's de noising our reality is this is that we start with a noisy image if we're doing any kind of more elaborate effects and we have to try to get to a nicer image we'd love to get this kind of image but we often will have a crude noisy image and then we have to reconstruct so reconstruction is called denoising and there are various ways to do it here's another example where the left is noisy and the right is d noised this de noising process can be extremely fast it says identical time but it's almost identical time it's the blink of an eye and what denoising does is basically look at that area that the various surfaces and tries to use data both in color channel and any other kind of information they might want to use like the normal or the color of the texture that's underlying the surface and use that to come up with some kind of filtering process where it tries to fill-in tries to infer what's going on in the surface so you could denoise by effect for example so in this image we have a nice soft shadow given by that plant unto a floor but might be difficult to actually denoise this if you try to do it on the final image because the floor grain would possibly mess up your algorithm so what you could do is instead de noise just the shadow image which would just be a bunch of grayscale tones and then you would fold that in with the textured surface and get a nice final effect the problem with de noising by effect is that if you did this for every single pass it would start to really add up the de noise and costs would become exorbitant so what we try to do is D noise on the final image that way we have just one de noising pass so on the Left we have the original image and on the right we have a human filtered image and a neural network filtered image and the human one is basically using sort of traditional denoising techniques and then tweaking and so on and the neural network is using an entirely different process what's interesting here is that I think the computers are winning because in the upper-right you can kind of see that back wall there's a little strip of green it's kind of blurred out a little bit too much with the human version but the neural network is picked up on that and kept the vertical stripes they're deep learning can be used for an image de noising the way this works is that we have a bunch of rendered images 20,000 40,000 however many we can get as training data and then we train our neural net using those images to have the neural net kind of know what the environments like we can then use that neural net to take a noisy image and have it infer what the real image should look like so we have some huge training set or some reasonable training set it just depends and from that we then can actually do a great job of denoising images surprisingly good so here's a noisy image one sample per pixel and here's our D noised image so the shadows look really nice and notice how soft they are a little bit of soft shadow it's a fairly nice final image you can compare that to the ground truth they're almost identical in comparison the traditional method and rasterization is to use Shadow Man where you render everything from the lights point of view here you get somewhat sharper kinds of shadows they're just not as beautiful let's face it and it has other kinds of problems like that one person is floating a little bit it's called Peter panning and this can be avoided by using newer techniques here's another example of denoising where we have this shiny surface varying in roughness and denoise it looks pretty good and here's the ground truth now there's a fair bit of difference between the de noised and the ground truth here but it's enough to be plausible it's a reasonable result and it's one that is going to basically be reasonable to most people's visual systems they're not going to be surprised or shocked by the result in comparison here's one that's pretty different actually this is called a stochastic screen-space reflection method that uses rasterization it's kind of using information in this screen and it has problems there are ways that it works fairly well but there's other places where it kind of falls apart to show you the comparison again we have the ground truth and the screen space reflection and you can see they're considerably different here's another image here we have just one sample per pixel of raytrace global illumination and denoising we get this really pretty fantastic result it just blows me away that it can do this well to compare this to ground truth and the ground truth image you'll notice a little bit of darkening around the fringes of things and in the crevices and so on but for the most part the images are quite comparable last I'm going to finish off with a animation so there's a movie that was rendered called zero day by this person called people and he kindly put his entire database an animation path and so on on the web for people to reuse as they will so we use this at Nvidia to experiment with different denying operations this is a pretty complicated scene there's actually about more than 7,000 individual triangles that are moving around that are lights so those light sources are all moving around and moving light sources can be quite tricky to capture nicely and so in this video what you're seeing is on the Left you're seeing four samples per pixel and about 16 Ray's shot per pixel total they're bouncing around a bit and the D noised is on the right now this is not real time at this point it's about seven frames per seconds the calculation going on here but you can see that this noise result is quite nice here's the final result using denoising and if you want you can compare it to the original there will be links on the website it looks quite nice you have to really kind of freeze-frame and do a side by side to see where there are slight differences between this and the one where they traced thousands of rays per pixel denoising to me is magic to summarize it's just this cool technique that can work surprisingly well on cleaning up a lot of problems and a lot of under sampling that we'd love to have more samples but we can't and I think to me it's what really made ray-tracing jump ahead a little bit more quickly than people expected I think we also were thinking well ray-tracing eventually there will be hardware but denoising really takes a great leap you know instead of needing thousands of samples or hundreds of samples or even tens of samples we can get by with just a few samples in many many situations to conclude I'd like to have one more quote so we started this whole series with there's an old joke that goes ray tracing is the technology of the future and always will be well the futures here and I like this quote from Steve Parker which is ray tracing is simple enough to fit on a business card you're complicated enough to consume an entire career for further resources see the website ray tracing gems is a book I highly recommend given that I co edit it and it's free for download and I hope you take advantage of it and thanks for letting me have your time [Music] you

Original Description

In the final video of the series: NVIDIA’s Eric Haines describes the process of denoising for ray tracing. A critical element in making realistic, high-quality images with ray tracing at interactive rates is the process of denoising. Using path tracing will (eventually) give the right answer, but there is a diminishing return for each new ray shot. To keep performance interactive, various denoising techniques can be used to clean up the wide variance sometimes seen when only a few rays are shot. Learn more here: https://news.developer.nvidia.com/ray-tracing-essentials-part-7-denoising-for-ray-tracing/ You can watch the all of the videos in the series on this YouTube Playlist: https://www.youtube.com/playlist?list=PL5B692fm6--sgm8Uiava0IIvUojjFOCSR Ray tracing resources page: http://bit.ly/rtrtinfo Ray Tracing Gems: http://raytracinggems.com On May 12, Eric Haines will present a live webinar about the Ray Tracing Essentials series. There will be a presentation, live Q&A, plus a giveaway of an NVIDIA TITAN RTX GPU (for live attendees only). Sign up here: https://info.nvidia.com/developer-ray-tracing-webinar-reg-page.html Additional links: Much of this talk’s contents is derived from Steven Parker’s HPG 2019 keynote, The Story of NVIDIA RTX, https://www.highperformancegraphics.org/wp-content/uploads/2019/keynote/story_of_nvidia_rtx.pdf. The initial image is by Alexia Rubod, and you can see more of her work here, https://alexiarubod.com/#/new-gallery/. The book Real-Time Rendering has a free, bonus chapter, http://www.realtimerendering.com/Real-Time_Rendering_4th-Real-Time_Ray_Tracing.pdf, giving an introductory high-level view of interactive ray tracing and includes a section on denoising. Two articles here, https://alain.xyz/blog/raytracing-denoising, and here, https://alain.xyz/blog/machine-learning-denoising, by Alain Galvan summarize various denoising approaches. Particularly important are spatio-temporal techniques, where samples from previous frames giv
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from NVIDIA Developer · NVIDIA Developer · 7 of 60

1 Ray Tracing Essentials Part 2: Rasterization versus Ray Tracing
Ray Tracing Essentials Part 2: Rasterization versus Ray Tracing
NVIDIA Developer
2 Ray Tracing Essentials Part 3: Ray Tracing Hardware
Ray Tracing Essentials Part 3: Ray Tracing Hardware
NVIDIA Developer
3 Ray Tracing Essentials Part 4: The Ray Tracing Pipeline
Ray Tracing Essentials Part 4: The Ray Tracing Pipeline
NVIDIA Developer
4 NsightGraphics 2020 2 Release Spotlight
NsightGraphics 2020 2 Release Spotlight
NVIDIA Developer
5 Ray Tracing Essentials Part 5: Ray Tracing Effects
Ray Tracing Essentials Part 5: Ray Tracing Effects
NVIDIA Developer
6 Ray Tracing Essentials Part 6: The Rendering Equation
Ray Tracing Essentials Part 6: The Rendering Equation
NVIDIA Developer
Ray Tracing Essentials Part 7: Denoising for Ray Tracing
Ray Tracing Essentials Part 7: Denoising for Ray Tracing
NVIDIA Developer
8 Spatiotemporal Importance Resampling for Many-Light Ray Tracing (ReSTIR)
Spatiotemporal Importance Resampling for Many-Light Ray Tracing (ReSTIR)
NVIDIA Developer
9 Announcing Cloud-Native Support for Jetson Platform
Announcing Cloud-Native Support for Jetson Platform
NVIDIA Developer
10 JetsonTV: Build your next project with NVIDIA Jetson
JetsonTV: Build your next project with NVIDIA Jetson
NVIDIA Developer
11 Nsight Compute Feature Spotlight: Roofline Analysis, Asynchronous Copy, Sparse Data Compression
Nsight Compute Feature Spotlight: Roofline Analysis, Asynchronous Copy, Sparse Data Compression
NVIDIA Developer
12 Nsight Systems Feature Spotlight: OpenMP
Nsight Systems Feature Spotlight: OpenMP
NVIDIA Developer
13 Isaac Sim 2020: Deep Dive
Isaac Sim 2020: Deep Dive
NVIDIA Developer
14 NVIDIA Jetson: Enabling AI-Powered Autonomous Machines at Scale
NVIDIA Jetson: Enabling AI-Powered Autonomous Machines at Scale
NVIDIA Developer
15 NVIDIA Tools to Train, Build, and Deploy Intelligent Vision Applications at the Edge
NVIDIA Tools to Train, Build, and Deploy Intelligent Vision Applications at the Edge
NVIDIA Developer
16 Jetson Xavier NX Developer Kit: The Next Leap in Edge Computing
Jetson Xavier NX Developer Kit: The Next Leap in Edge Computing
NVIDIA Developer
17 Synthesizing High-Resolution Images with StyleGAN2
Synthesizing High-Resolution Images with StyleGAN2
NVIDIA Developer
18 NVIDIA Robotics: Isaac SDK and Sim 2020.1
NVIDIA Robotics: Isaac SDK and Sim 2020.1
NVIDIA Developer
19 Accelerating COVID-19 Research with GPUs
Accelerating COVID-19 Research with GPUs
NVIDIA Developer
20 Visualizing 150 Terabytes of Data
Visualizing 150 Terabytes of Data
NVIDIA Developer
21 Boosting Performance and Utilization with Multi-Instance GPU
Boosting Performance and Utilization with Multi-Instance GPU
NVIDIA Developer
22 Running Multiple Workloads on a Single A100 GPU
Running Multiple Workloads on a Single A100 GPU
NVIDIA Developer
23 NVIDIA Nsight Feature Spotlight: GPU Trace
NVIDIA Nsight Feature Spotlight: GPU Trace
NVIDIA Developer
24 Spark 3 Demo: Comparing Performance of GPUs vs. CPUs
Spark 3 Demo: Comparing Performance of GPUs vs. CPUs
NVIDIA Developer
25 NVIDIA Jetson Nano Wins Edge AI and Vision Alliance Award
NVIDIA Jetson Nano Wins Edge AI and Vision Alliance Award
NVIDIA Developer
26 NVIDIA IndeX on Google Cloud Platform Marketplace
NVIDIA IndeX on Google Cloud Platform Marketplace
NVIDIA Developer
27 DeepStream SDK: Best practices for performance optimization
DeepStream SDK: Best practices for performance optimization
NVIDIA Developer
28 Efficiently Deploying GPU Accelerated 5G CloudRAN for Edge AI Inferencing
Efficiently Deploying GPU Accelerated 5G CloudRAN for Edge AI Inferencing
NVIDIA Developer
29 NVIDIA PhysicsNeMo - Accelerating Scientific & Engineering Simulation Workflows with AI
NVIDIA PhysicsNeMo - Accelerating Scientific & Engineering Simulation Workflows with AI
NVIDIA Developer
30 NVIDIA Deep Learning Institute Instructor-Led Training Available Remotely
NVIDIA Deep Learning Institute Instructor-Led Training Available Remotely
NVIDIA Developer
31 Advancing AR Glasses
Advancing AR Glasses
NVIDIA Developer
32 Blender Cycles: RTX On
Blender Cycles: RTX On
NVIDIA Developer
33 Real-Time GPU-Accelerated Data Analytics of 250 million Flight Data Records of 737 Max grounding
Real-Time GPU-Accelerated Data Analytics of 250 million Flight Data Records of 737 Max grounding
NVIDIA Developer
34 Assessing Property Damage with AI
Assessing Property Damage with AI
NVIDIA Developer
35 RAPIDS: GPU-Accelerated Data Analytics & Machine Learning
RAPIDS: GPU-Accelerated Data Analytics & Machine Learning
NVIDIA Developer
36 DaVinci Resolve Turns RTX On
DaVinci Resolve Turns RTX On
NVIDIA Developer
37 RAPIDS with Plotly Dash : GPU-Accelerated Census 2010 Visualization
RAPIDS with Plotly Dash : GPU-Accelerated Census 2010 Visualization
NVIDIA Developer
38 NVIDIA IndeX for arivis5D Cloud Platform
NVIDIA IndeX for arivis5D Cloud Platform
NVIDIA Developer
39 NVIDIA Backchannel: Behind the Scenes of Marbles at Night RTX
NVIDIA Backchannel: Behind the Scenes of Marbles at Night RTX
NVIDIA Developer
40 NVIDIA Backchannel: Sneak Peek into Marbles RTX in Omniverse
NVIDIA Backchannel: Sneak Peek into Marbles RTX in Omniverse
NVIDIA Developer
41 How to Create "Paint" in Substance Painter
How to Create "Paint" in Substance Painter
NVIDIA Developer
42 Accelerate AI development for Computer Vision on the NVIDIA Jetson with alwaysAI
Accelerate AI development for Computer Vision on the NVIDIA Jetson with alwaysAI
NVIDIA Developer
43 Securing Next Generation Apps over VMware Cloud Foundation with Bluefield-2 DPU
Securing Next Generation Apps over VMware Cloud Foundation with Bluefield-2 DPU
NVIDIA Developer
44 Accelerated Data Centers with NVIDIA and VMware
Accelerated Data Centers with NVIDIA and VMware
NVIDIA Developer
45 GPU-Accelerated Motion Blur in Blender Cycles
GPU-Accelerated Motion Blur in Blender Cycles
NVIDIA Developer
46 NVIDIA Clara Guardian Virtual Patient Assistant
NVIDIA Clara Guardian Virtual Patient Assistant
NVIDIA Developer
47 Revolutionizing Supercomputing with NVIDIA UFM Cyber-AI
Revolutionizing Supercomputing with NVIDIA UFM Cyber-AI
NVIDIA Developer
48 Inventing Virtual Meetings of Tomorrow with NVIDIA AI Research
Inventing Virtual Meetings of Tomorrow with NVIDIA AI Research
NVIDIA Developer
49 Learning a Contact-Adaptive Controller for Robust, Efficient Legged Locomotion
Learning a Contact-Adaptive Controller for Robust, Efficient Legged Locomotion
NVIDIA Developer
50 Getting started with Jetson Nano 2GB Developer Kit
Getting started with Jetson Nano 2GB Developer Kit
NVIDIA Developer
51 NVIDIA Jetson Developer Community AI Projects
NVIDIA Jetson Developer Community AI Projects
NVIDIA Developer
52 Open-source projects on NVIDIA Jetson Nano 2GB Developer Kit
Open-source projects on NVIDIA Jetson Nano 2GB Developer Kit
NVIDIA Developer
53 Real-Time Ray Tracing with Project Lavina
Real-Time Ray Tracing with Project Lavina
NVIDIA Developer
54 Jetson AI Fundamentals - S1E2 - Hello Camera
Jetson AI Fundamentals - S1E2 - Hello Camera
NVIDIA Developer
55 Develop Optimized Conversational AI Models with NVIDIA NeMo on DGX A100
Develop Optimized Conversational AI Models with NVIDIA NeMo on DGX A100
NVIDIA Developer
56 Jetson AI Fundamentals - S1E4 - Image Regression Project
Jetson AI Fundamentals - S1E4 - Image Regression Project
NVIDIA Developer
57 Jetson AI Fundamentals - S2E1 - JetBot Intro and Hardware
Jetson AI Fundamentals - S2E1 - JetBot Intro and Hardware
NVIDIA Developer
58 Jetson AI Fundamentals - S2E2 - JetBot Software Setup
Jetson AI Fundamentals - S2E2 - JetBot Software Setup
NVIDIA Developer
59 Jetson AI Fundamentals - S1E1 - First Time Setup with JetPack
Jetson AI Fundamentals - S1E1 - First Time Setup with JetPack
NVIDIA Developer
60 Jetson AI Fundamentals - S1E3 - Image Classification Project
Jetson AI Fundamentals - S1E3 - Image Classification Project
NVIDIA Developer

Related Reads

📰
Microsoft is reportedly training salespeople to talk down OpenAI and Anthropic
Microsoft trains salespeople to promote its AI models over OpenAI and Anthropic, focusing on efficiency and cost-effectiveness
TechCrunch AI
📰
73% of tech job listings require AI skills now: 3 ways to show off yours
73% of tech job listings require AI skills, learn how to showcase yours to potential employers
ZDNet
📰
A Call For AI Clarity, From Leading Thinkers And Doers
Leading thinkers and doers call for AI clarity, emphasizing the need for a deeper understanding of AI's economic impact
Forbes Innovation
📰
Hack suggests AI music generator Suno scraped YouTube for training data
AI music generator Suno allegedly scraped YouTube for training data, highlighting AI data sourcing concerns
TechCrunch AI
Up next
OpenAI vs Anthropic
Matthew Berman
Watch →