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