GPU ray tracing

  • Authors:
  • Steven G. Parker;Heiko Friedrich;David Luebke;Keith Morley;James Bigler;Jared Hoberock;David McAllister;Austin Robison;Andreas Dietrich;Greg Humphreys;Morgan McGuire;Martin Stich

  • Affiliations:
  • NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA, Santa Clara, CA;NVIDIA and Williams College;NVIDIA, Santa Clara, CA

  • Venue:
  • Communications of the ACM
  • Year:
  • 2013

Quantified Score

Hi-index 48.22

Visualization

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.