Research

OptiX: A General Purpose Ray Tracing Engine

"OptiX: A General Purpose Ray Tracing Engine"
Steven G. Parker (NVIDIA), James Bigler (NVIDIA), Andreas Dietrich (NVIDIA), Heiko Friedrich (NVIDIA), Jared Hoberock (NVIDIA), David Luebke (NVIDIA), David McAllister (NVIDIA), Morgan McGuire (NVIDIA), Keith Morley (NVIDIA), Austin Robison (NVIDIA), Martin Stich (NVIDIA), in ACM Transactions on Graphics (SIGGRAPH 2010 Proceedings), August 2010
Research Area: 3D Graphics
Author(s): Steven G. Parker (NVIDIA), James Bigler (NVIDIA), Andreas Dietrich (NVIDIA), Heiko Friedrich (NVIDIA), Jared Hoberock (NVIDIA), David Luebke (NVIDIA), David McAllister (NVIDIA), Morgan McGuire (NVIDIA), Keith Morley (NVIDIA), Austin Robison (NVIDIA), Martin Stich (NVIDIA)
Date: August 2010
Download(s):
 
Abstract:

The NVIDIA(R) OptiX(TM) 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.