NVIDIA® OptiX™ ray tracing engine

OptiX 3.5 Now Available

The NVIDIA® OptiX™ Ray Tracing Engine is a programmable ray tracing framework helping software developers build ray tracing applications in a fraction of the time of conventional methods, that then run exceedingly fast on NVIDIA GPUs. Unlike a renderer with a prescribed look, a language limited to rendering, or prescribed solutions with fixed data structures, the OptiX engine is extremely general - enabling developers to quickly accelerate whatever ray tracing task they wish, integrate it as needed, and run it on commonly available hardware.

OptiX Registered Development Program

OptiX enters its fourth year with it's own dedicated developer program, providing you with a central place for ray tracing information while helping NVIDIA better understand and serve the growing and diverse needs of the many developers employing OptiX. After successfully registering, you will have access to the latest OptiX 3.5 SDK and will be able to contribute more direct feedback to help us guide the direction of OptiX.

OptiX Prime - for Blazingly Fast Traversal in OptiX 3.5

OptiX 3.5 includes OptiX Prime - an elegantly simple API for applications needing to just find intersections. You hand OptiX Prime a list of triangle and rays and it returns the intersections at over 300 million rays per second (on a single GPU). OptiX Prime can work hand in hand with core OptiX and replaces the rtuTraverse method which previously shipped with OptiX. OptiX Prime is also a perfect fit for new GPU-based acceleration structure (TRBVH) that both builds and runs incredibly fast - making it the new default choice for most applications. OptiX Prime also provides an efficient CPU fallback for when a suitable GPU is not present. 

Additional OptiX 3.5 Features

The new Trbvh acceleration structure builder is available for all OptiX applications, slashing build times by over 100X while delivering ray tracing performance that rivals our fastest builder. New support for Buffers of Buffers and Bindless Buffers provide buffer access with a single ID, much like our Bindless Texture Samplers. Optimized support for NVIDIA's latest GK110 GPUs delivers an extra 25% performance on boards like the Quadro K6000, Tesla K40 and GTX Titan Black.

NEW: OptiX Commercial

OptiX 3.5 continues to be free to acquire and use within your own company/institution, and to include within free applications you distribute, but commercial applications now require a Commercial License to redistribute OptiX 3.5 and later. NVIDIA is making this change to give commercial applications the higher level of support they require. The OptiX Commercial version also includes additional functionality and examples that are relevant to commercial products. Please email: optix-commercial@nvidia.com if you are interested in becoming a Commercial OptiX Developer and we will supply you with all the details. In the meantime, any development done with this OptiX version will be compatible with OptiX Commercial.

Rapid Ray Tracing Development

The OptiX engine takes care of the "heavy lifting" associated with ray tracing, giving developers more time to concentrate on technique with relatively small programs that leverage the latest GPU advances. A single ray execution model makes building custom techniques straight forward, while state of the art acceleration structures (such as BVH and KD trees), cutting edge traversal algorithms, load balancing, recursion, parallelism (across CUDA Cores and GPUs), out of core processing, and interop with OpenGL, Direct3D and CUDA, makes ray tracing development far easier than alternative approaches. 

Ray Tracing Flexibility

OptiX easily extends beyond image creation by enabling rays to gather and carry custom payloads. The data fed to OptiX is also programmable, enabling custom shading techniques, programmable intersection for procedural definitions, and programmable cameras for customized ray dispatching. This flexibility enables OptiX to accelerate ray traced rendering algorithms ranging from the highly interactive to the ultra-realistic, while also accommodating disciplines such as acoustics, ballistics, collision analysis, radiation reflectance, or volume calculations - wherever intensive ray tracing calculations are employed.

Rapid Evolution

Applications employing OptiX continually increase in speed by using consistent APIs that exploit the latest advances from both new hardware and ray tracing research at NVIDIA. As a compiler based technology, OptiX builds the optimal runtime for the processors it finds, freeing developers from having to optimize their applications per GPU architecture.

OptiX 3.0 Added: 

  • Callable Programs 
  • OptiX-CUDA Interop 
  • Bindless Textures
  • Improved Performance 
  • Far Faster Times for SBVH
  • Better Multi-GPU Load Balancing 
  • More Efficient Compilation 
  • Expanded Out of Core support 
  • New Texture Wrap Modes 
  • TCC Driver Support 
  • New SDK Source Examples

OptiX 2.6 added:

  • Kepler GPU Support
  • CUDA LLVM Optimizations
  • CUDA 4.2 Support

OptiX 2.5.1 added:

  • Out-of-Core Memory Paging
  • Unlimited textures
  • Ultra-Fast Acceleration Structure building
  • Increased performance on divergent rays by up to +80%
  • Visual Studio 2010 support

OptiX 2.1.1 added:

  • Fixed known issues when targeting sm_20.
  • Fixed several bugs related to using Transforms in user CUDA programs.
  • Fixed some compilation issues when using double precision in user CUDA programs.
  • Fixed optixpp_namespace.h compile error when using SelectorObj::getChild(), GroupObj::getChild(), and TransformObj::getChild().

OptiX 2.1 added:

  • Performance improvements of up to +70% for many heavy workloads over previous OptiX versions.
  • 64-bit device code compilation, allowing access to the full 6GB of Quadro 6000 and Tesla 2070 solutions
  • CUDA 3.1, CUDA 3.2 and CUDA 4.0 B2 support
  • Universal binary (i386 + x86_64) support for Mac OptiX libraries
  • New rtuTraversal API for easily computing batches of ray intersections with geometry without the need to setup an OptiX pipeline - an optimal means for operations like light baking, occlusion culling, and collision detection.
  • CPU fallback for the new Traversal API.

OptiX 2.0 added:

  • All CUDA-capable GPUs (G80 generation and later)
  • Optimizations for Fermi-class GPUs
  • Direct 3D Support
  • Fast Interop with both Direct3D and OpenGL
  • Mac OS
  • Endless rendering (for avoiding driver time outs)
  • Numerous improvements for applications making scene updates

OptiX SDK System Requirements:

  • Operating System: 32 or 64-bit versions of Windows XP, Windows Vista, Windows 7, Linux, and Mac OS
  • CPU: x86 compatible
  • System Memory: matches graphics board recommendations
  • GPU: CUDA-capable, G80 or later. GT200 class or later GPU required for multi-GPU scaling and technical support
  • GPU memory: varies with data complexity
  • NVIDIA Driver R300or later, CUDA toolkit 2.3 or later
  • Development Environment: C/C++ Compiler, CUDA Toolkit 2.3 or newer, CMake (only for rebuilding SDK samples)


| OptiX Support ForumOptiX Overview | Registered OptiX Developer Application |

Subscribe to our Developer RSS feed or follow nvidiadeveloper on Twitter for the latest news about OptiX or other Application Acceleration Engines