Read more
Get a thorough understanding of ray tracing and GPU architecture starting with CUDA with examples in DXR (DirectX Ray Tracing API). A Path tracer implementation will be presented to cover the practical side.
We will present main intersection routines and then explain the rendering equation and how the path tracing algorithm is used to implement a solution to the rendering equation. Finally, we will talk about how to choose the right probability distribution function and importance sampling to better approximate the BRDF and reduce the noise in the rendered image.
By the end of this book, the reader should have a clear idea of how ray tracing and the rendering equation are used to solve the global illumination problem. We will also learn how the thread are scheduled and managed by the GPU in the context of compute-based approaches. The reader will learn the Monte Carlo integration to estimate rendering equation and find a good approximation to the infinite dimensional integral.
You Will
- Understand the most common GPU architectures
- Setup a fully functional ray tracing ecosystem
- Learn how to ray trace in CUDA as well as DirectX 12 (DXR)
Who Is This Book For
This book is for the Graphics/Rendering Engineer who want to start learning the new real-time ray tracing API (DXR) introduced with the advent of the GPUs based on the NVIDIA Turing architecture. We assume knowledge of basic graphics programming principles.
List of contents
Chapter 1: Brief History of Modern GPUs.- Chapter 2: Know Your Hardware: The Streaming Multiprocessor.- Chapter 3: GPGPU Ray Tracing vs DXR Ray Tracing Approaches.- Chapter 4: Enter the Turing Microarchitecture.- Chapter 5: Ray Tracing Techniques.- Chapter 6: Ray and Camera Model Definitions.- Chapter 7: Basic Ray-Primitive Intersection Techniques.- Chapter 8: Rendering Equation and Monte Carlo Integration.- Chapter 9: DirectX 12 and Real-Time Ray Tracing in DXR.- Chapter 10: Path Tracing: Global Illumination.- Chapter 11: Add Tone Mapping and Gamma Correction to Your Ray Tracer.- Chapter 12: Hybrid Rendering Pipelines.- Chapter 13: Adding Monte Carlo Importance Sampling to Your Path Tracer.- Chapter 14: Choosing the Right PDF (Probability Density Function).- Chapter 15: Russian Roulette and Unbiased Rendering.- Chapter 16: Performance Tools and Best Practices.
About the author
Fabio Suriano is a game developer, specializing in Graphics Programming. He is presently working as a Senior Graphics Programmer for Storm in a Teacup. His main interests range from rendering techniques, path tracing, and hardware architecture in the context of writing efficient code on the CPU as well as GPU. Fabio has also delivered a talk on realistic ocean simulation on behalf of his organization at Codemotion.