Research

GPU Ray Tracing

"GPU Ray Tracing"
Steven Parker, Heiko Freidrich, David Luebke (NVIDIA), Keith Morley, James Bigler, Jared Hoberock (NVIDIA), David McAllister, Austin Robison, Andreas Dietrich, Greg Humphreys, Morgan McGuire (NVIDIA), Martin Stich, in Communications of the ACM, May 2013
Research Area: 3D Graphics
Author(s): Steven Parker, Heiko Freidrich, David Luebke (NVIDIA), Keith Morley, James Bigler, Jared Hoberock (NVIDIA), David McAllister, Austin Robison, Andreas Dietrich, Greg Humphreys, Morgan McGuire (NVIDIA), Martin Stich
Date: May 2013
Download(s):
HTMLPDFDigital Edition
 
Abstract: 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.