
NVIDIA® OptiX™ ray tracing engine
The NVIDIA® OptiX™ Ray Tracing Engine is a programmable ray tracing framework for software developers to rapidly build ray tracing applications that yield extremely fast results across NVIDIA GPUs with conventional C programming. Unlike a renderer with a prescribed look, or being constrained to certain data structures or a language limited to rendering, the OptiX engine is extremely general - enabling software developers to quickly accelerate whatever ray tracing task they wish and execute it on widely available hardware - all license free.
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 interface with the OptiX engine. 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, tiling, endless rendering, and parallelism (across CUDA Cores and GPUs) makes ray tracing development far easier than other methods.
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. With OptiX, GPU's based on the Fermi architecture deliver a +2-5X performance over the previous GT200 GPU architecture, which in turn is +2X faster over G92 & G80 architectures. OptiX 2.1 adds support for CUDA 3.1, 3.2, 4.0 B2, and 64-bit device code compilation while giving applications up to 80% greater performance on complex scenes and incoherent techniques.
NVIDIA OptiX 2.5 RC3 Now Available
The Release Candidate for OptiX 2.5 is now available for testing. This important new version provides enhancements that dramatically increase the possibilities for GPU ray tracing, including:
-
Out-of-Core Memory Paging
Scene sizes can now exceed GPU memory on professional GPUs (Quadro or Tesla) to the extent there is host RAM available. -
Unlimited Textures
Any number of textures can now be used in scenes (when the textures are not being used in graphics interop). -
Ultra-Fast Acceleration Structure Building
A new GPU-based BVH Builder - HLBVH2 - builds acceleration structures fast enough for interactive editing and deformation. -
Increased Performance on Divergent Rays
Techniques such as path tracing and ambient occlusion should see a noticeable performance increase on complex scenes. -
Visual Studio 2010 support
We encourage all developers using OptiX to try RC1 to see if it's working the way you need it to for your application, and to quickly report any issue they may find to the Forum using the OptiX tag.
Previous OptiX Advances:
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 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
- Initial CPU fallback for limited operations
- 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
OptiX 2.0 added support for:
- All CUDA-capable GPUs (G80 generation and later)
- Fermi-class GPUs optimizations
- Direct 3D
- Fast Interop with both Direct3D and OpenGL
- Mac OS
- Endless rendering
- Numerous improvements for applications making scene updates
You can begin transforming the performance of your ray tracing applications by downloading the latest OptiX SDK here:
OptiX SDK Download
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 R195 or later, CUDA toolkit 2.3 or later
- NVIDIA Driver R260 or later, required for 64-bit device code utilization. CUDA Toolkit 3.0 or later.
- Development Environment: C/C++ Compiler, CMake (not required externally to the SDK) and the CUDA 2.3, 3.0, 3.1, 3.2 or 4.0 B2 Toolkit.
Ready-to-Run Examples using OptiX
Anxious? Click here to experience what OptiX delivers on your GPU by trying self-contained, interactive examples from the SDK:
Interactive OptiX Samples Download
| OptiX Support Forum | Download OptiX | OptiX Overview | Application Engine Overview |
Subscribe to our Developer RSS feed or follow nvidiadeveloper on Twitter for the latest news about OptiX or other Application Acceleration Engines




Registered Developers Website
NVDeveloper (old site)