GPU Ray Tracing

in Communications of the ACM (March 2013)

Steven G. Parker, NVIDIA
Heiko Friedrich, NVIDIA
David Luebke, NVIDIA
Keith Morley, NVIDIA
James Bigler, NVIDIA
Jared Hoberock, NVIDIA
David McAllister, NVIDIA
Austin Robison, NVIDIA
Andreas Dietrich, NVIDIA
Greg Humphreys, NVIDIA
Morgan McGuire, Williams College and NVIDIA
Martin Stich, NVIDIA

Matt Pharr's Introduction (ACM)
Paper (ACM)


The NVIDIA OptiX ray tracing engine is a programmable system designed for NVIDIA GPUs and other highly parallel architectures. The OptiX engine builds on the key observation that most ray tracing algorithms can be implemented using a small set of programmable operations. Consequently, the core of OptiX is a domain-specific just-in-time compiler that generates custom ray tracing kernels by combining user-supplied programs for ray generation, material shading, object intersection, and scene traversal. This enables the implementation of a highly diverse set of ray tracing-based algorithms and applications, including interactive rendering, offline rendering, collision detection systems, artificial intelligence queries, and scientific simulations such as sound propagation. OptiX achieves high performance through a compact object model and application of several ray tracing-specific compiler optimizations. For ease of use it exposes a single-ray programming model with full support for recursion and a dynamic dispatch mechanism similar to virtual function calls.


 author = {Steven G. Parker and Heiko Friedrich and David Luebke and Keith Morley and James Bigler and Jared Hoberock and David McAllister and Austin Robison and Andreas Dietrich and Greg Humphreys and Morgan McGuire and Martin Stich },
 title = {GPU Ray Tracing},
 year = {2013},
 month = {March},
 volume = {56},
 number = {5},
 journal = {Communications of the ACM},
 url = {}