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.
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 straightforward, while state of the art acceleration structures (such as BVH), 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.
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.
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.