The NVIDIA® OptiX™ Ray Tracing Engine is a programmable ray tracing framework that helps 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 a limited set of kernels, the OptiX engine is extremely general. This enables developers to quickly accelerate whatever ray tracing task they wish, integrate it into their application, and run it on commonly available hardware.
OptiX has been evolving since 2008, and today has thousands of active developers who enjoy its flexibility, ease of use, high performance and great reach - supporting over half a billion GPUs. OptiX has often been called the “OpenGL of ray tracing” by providing an approachable API that can power a myriad of use cases including styling, visual effects, mechanical design, and light baking for games. OptiX is also used by hundreds of companies in non-rendering applications including physical optics, acoustical design, radiation research, sensor simulation, and collision analysis – wherever ray tracing techniques are employed.
The NVIDIA® Quadro® Visual Computing Appliance (VCA) has native support for OptiX. With very minimal changes, an OptiX-based application gains remote client-server rendering that can leverage remote VCAs and stream the results back to the host. With just a few OptiX API calls to connect to the VCA, the application can then use the remote VCA through the new OptiX Progressive API and Stream Buffer API. The OptiX buffer data and API calls are sent to the VCA, where the OptiX workload is distributed across all eight GPUs in the VCA. Rendered frames are then streamed back to the host application with optional video compression for display or other use. Buffer data may be transparently cached on the VCA so subsequent runs using the same data don’t require reupload.
NVIDIA offers a VCA test environment where you can validate that your application works seamlessly with the VCA. To access the test environment please contact OptiX-VCA@nvidia.com.
The OptiX engine takes care of the "heavy lifting" associated with ray tracing, giving developers more time to concentrate on algorithms and features. A single ray execution model makes building custom techniques straightforward, while state of the art acceleration structures (such as TRBVH), cutting edge traversal algorithms, load balancing, recursion, parallelism (across CUDA Cores, GPUs, and VCAs), out of core processing, and interop with OpenGL, Direct3D and CUDA make ray tracing development far easier than alternative approaches.
OptiX is a “to-the-algorithm” API that encapsulates most or all of your application’s algorithm in eight kinds of programmable shaders that are provided to OptiX. By encapsulating the algorithm in shaders OptiX can parallelize the computation across multiple GPUs, execute the entire algorithm on the VCA, and retarget the algorithm optimally as each new GPU is released.
OptiX easily extends beyond image creation with full scatter / gather memory access and custom ray payloads. The data fed to OptiX is also programmable, enabling custom shading techniques, programmable primitive intersection, 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.
NVIDIA has long been known for the power of its Unified Driver Architecture, where one driver works on all NVIDIA GPUs. OptiX offers a similar level of consistency. Applications that targeted OptiX 1.0 in 2009 will still work today with the latest OptiX dynamic library dropped in. This compatibility commitment means that applications will just get faster and faster with nearly no effort by the application developer as OptiX exploits the latest advances from both new GPU 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 for each new GPU architecture.
OptiX now includes OptiX Prime, an elegantly simple API for applications needing to just find intersections. You hand OptiX Prime a list of triangles and a list of rays and it returns the intersections at over 350 million rays per second (on a single GPU). OptiX Prime also provides an efficient CPU fallback for when a suitable GPU is not present.