Denoising and Filtering: Part V of Ray Tracing Gems

In this installment of Ray Tracing Gems, we take a look at the process of denoising and filtering scenes. Real-time ray tracing always begins with noisy imagery; the solutions described in this text will get your scenes as close to ground truth as possible.  “Ray Tracing Gems Part V” can be downloaded at NVIDIA Developer Zone.

Here is the forward for Part V, written by Jacob Munkberg, senior research scientist in NVIDIA’s real-time rendering research group:

“Denoising and filtering are integral parts of a ray tracing pipeline. In a real-time setting, one can afford only a handful of rays per pixel, often randomly distributed. Consequently, the result is inherently noisy. By combining these sparse (but correct) per-pixel evaluations with spatiotemporal filters, variance is drastically reduced at the cost of increased bias, which is often a reasonable trade-off in real-time rendering. Furthermore, each ray is a point sample, which can introduce aliasing. By prefiltering terms where possible, e.g., texture lookups, aliasing can be reduced. This part introduces several practical examples of denoising and filtering for real-time ray Tracing.

“Chapter 19, ‘Cinematic Rendering in UE4 with Real-Time Ray Tracing and Denoising,’ presents a detailed overview of integrating ray tracing in a modern game engine. By combining rasterization with GPU-accelerated DirectX Raytracing and custom denoising filters, the authors reach previously unseen image fidelity at interactive rates. In two comprehensive demos they showcase soft shadows, glossy reflections, and diffuse indirect illumination.

“In rasterization-based rendering, one commonly applies texture filtering based on derivatives with respect to screen-space coordinates to reduce aliasing. This requires that primary visibility and shading are computed over quads of pixels. In ray tracing, explicit ray differentials are commonly used. In Chapter 20, ‘Texture Level of Detail Strategies for Real-Time Ray Tracing,’ the authors evaluate techniques for texture filtering in a ray tracing setting and present several practical algorithms with different performance-versus-quality characteristics. In Chapter 21, ‘Simple Environment Map Filtering Using Ray Cones and Ray Differentials,’ an inexpensive texture filtering technique for environment map lookups is presented.

“Temporal antialiasing (TAA) reduces aliasing by reprojecting older samples us- ing motion vectors and integrating samples over time. However, these techniques sometimes fail, e.g., in disocclusion regions. In Chapter 22, ‘Improving Temporal Antialiasing with Adaptive Ray Tracing,’ the authors take advantage of adaptive ray tracing of primary visibility to reduce aliasing artifacts. Additional primary rays are traced in regions with high aliasing and in regions where TAA may fail. The approach is implemented with DirectX Raytracing in a modern game engine and approaches quality levels close to 16× supersampling.

“Denoising and filtering are important building blocks for high-fidelity real-time rendering, and the chapters include many practical insights and readily applicable source code. In summary, this part shows that the combination of GPU-accelerated ray tracing and clever denoising techniques can produce convincing imagery at interactive rates.”

Jacob Munkberg, Senior Research Scientist in NVIDIA’s real-time rendering research group