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.
- Aila, T., and Laine, S. 2009. Understanding the Efficiency of Ray Traversal on GPUs. In Proceedings of High-Performance Graphics 2009, 145--149. Google ScholarDigital Library
- Bigler, J., Stephens, A., and Parker, S. G. 2006. Design for Parallel Interactive Ray Tracing Systems. In Proceedings of the 2006 IEEE Symposium on Interactive Ray Tracing, 187--196.Google Scholar
- Bikker, J. 2007. Real-time Ray Tracing Through the Eyes of a Game Developer. In RT '07: Proceedings of the 2007 IEEE Symposium on Interactive Ray Tracing, 1--10. Google ScholarDigital Library
- Caustic Graphics, 2009. Introduction to CausticRT. http://www.caustic.com/pdf/Introduction_to_CausticRT.pdf.Google Scholar
- Dietrich, A., Wald, I., Benthin, C., and Slusallek, P. 2003. The OpenRT Application Programming Interface -- Towards A Common API for Interactive Ray Tracing. In Proceedings of the 2003 OpenSG Symposium, 23--31.Google Scholar
- Djeu, P., Hunt, W., Wang, R., Elhassan, I., Stoll, G., and Mark, W. R. 2007. Razor: An Architecture for Dynamic Multiresolution Ray Tracing. Tech. Rep. TR-07-52.Google Scholar
- Georgiev, I., and Slusallek, P. 2008. RTfact: Generic Concepts for Flexible and High Performance Ray Tracing. In IEEE/Eurographics Symposium on Interactive Ray Tracing 2008.Google Scholar
- Goldsmith, J., and Salmon, J. 1987. Automatic Creation of Object Hierarchies for Ray Tracing. IEEE Computer Graphics and Applications 7, 5, 14--20. Google ScholarDigital Library
- Green, S. A., and Paddon, D. J. 1990. A Highly Flexible Multiprocessor Solution for Ray Tracing. The Visual Computer 6, 2, 62--73.Google ScholarCross Ref
- Gribble, C. P., and Ramani, K. 2008. Coherent Ray Tracing via Stream Filtering. In Proceedings of the 2006 IEEE Symposium on Interactive Ray Tracing, 59--66.Google Scholar
- Havran, V. 2001. Heuristic Ray Shooting Algorithms. PhD thesis, Faculty of Electrical Engineering, Czech Technical University in Prague.Google Scholar
- Horn, D. R., Sugerman, J., Houston, M., and Hanrahan, P. 2007. Interactive k-d tree gpu raytracing. In I3D '07: Proceedings of the 2007 symposium on Interactive 3D graphics and games, ACM, New York, NY, USA, 167--174. Google ScholarDigital Library
- Kajiya, J. T. 1986. The Rendering Equation. In Computer Graphics (Proceedings of ACM SIGGRAPH), 143--150. Google ScholarDigital Library
- Lattner, C., and Adve, V. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In CGO '04: Proceedings of the 2004 International Symposium on Code Generation and Optimization. Google ScholarDigital Library
- Lauterbach, C., eui Yoon, S., and Manocha, D. 2006. RT-DEFORM: Interactive Ray Tracing of Dynamic Scenes using BVHs. In In Proceedings of the 2006 IEEE Symposium on Interactive Ray Tracing, 39--45.Google Scholar
- Lauterbach, C., Garland, M., Sengupta, S., Luebke, D., and Manocha, D. 2009. Fast BVH Construction on GPUs. Computer Graphics Forum (Proceedings of Eurographics) 28, 2, 375--384.Google ScholarCross Ref
- Lindholm, E., Nickolls, J., Oberman, S., and Montrym, J. 2008. NVIDIA Tesla: A Unified Graphics and Computing Architecture. IEEE Micro 28, 39--55. Google ScholarDigital Library
- MacDonald, J. D., and Booth, K. S. 1989. Heuristics for Ray Tracing using Space Subdivision. In Proceedings of Graphics Interface, 152--63.Google Scholar
- McGuire, M., and Luebke, D. 2009. Hardware-Accelerated Global Illumination by Image Space Photon Mapping. In Proceedings of the 2009 ACM SIGGRAPH/EuroGraphics conference on High Performance Graphics. Google ScholarDigital Library
- Muuss, M. J. 1995. Towards Real-Time Ray-Tracing of Combinatorial Solid Geometric Models. In Proceedings of BRL-CAD Symposium.Google Scholar
- NVIDIA, 2010. NVIDIA OptiX Ray Tracing Engine Programming Guide Version 2.0. http://developer.nvidia.com/object/-optix-home.html.Google Scholar
- NVIDIA, 2010. PTX: Parallel Thread Execution ISA Version 2.0. http://developer.download.nvidia.com/compute/cuda/3_0/-toolkit/docs/ptx_isa_2.0.pdf.Google Scholar
- Parker, S. G., Martin, W., Sloan, P.-P. J., Shirley, P., Smits, B. E., and Hansen, C. D. 1999. Interactive Ray Tracing. In SI3D, 119--126. Google ScholarDigital Library
- Popov, S., Günther, J., Seidel, H.-P., and Slusallek, P. 2007. Stackless kd-tree traversal for high performance gpu ray tracing. Computer Graphics Forum 26, 3 (Sept.). (Proceedings of Eurographics), to appear.Google ScholarCross Ref
- Reshetov, A., Soupikov, A., and Hurley, J. 2005. Multi-Level Ray Tracing Algorithm. ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH), 1176--1185. Google ScholarDigital Library
- Shevtsov, M., Soupikov, A., and Kapustin, A. 2007. Highly Parallel Fast KD-tree Construction for Interactive Ray Tracing of Dynamic Scenes. Computer Graphics Forum 26, 3, 395--404.Google ScholarCross Ref
- Stich, M., Friedrich, H., and Dietrich, A. 2009. Spatial Splits in Bounding Volume Hierarchies. In Proceedings of High-Performance Graphics 2009, 7--13. Google ScholarDigital Library
- Wald, I., Benthin, C., Wagner, M., and Slusallek, P. 2001. Interactive Rendering with Coherent Ray Tracing. In Computer Graphics Forum (Proceedings of Eurographics 2001), vol. 20.Google Scholar
- Wald, I., Boulos, S., and Shirley, P. 2007. Ray Tracing Deformable Scenes using Dynamic Bounding Volume Hierarchies. ACM Transactions on Graphics 26, 1. Google ScholarDigital Library
- Wald, I., Mark, W. R., Günther, J., Boulos, S., Ize, T., Hunt, W., Parker, S. G., and Shirley, P. 2007. State of the Art in Ray Tracing Animated Scenes. In STAR Proceedings of Eurographics 2007, 89--116.Google Scholar
- Whitted, T. 1980. An Improved Illumination Model for Shaded Display. Commun. ACM 23, 6, 343--349. Google ScholarDigital Library
- Woop, S., Schmittler, J., and Slusallek, P. 2005. RPU: A Programmable Ray Processing Unit for Realtime Ray Tracing. ACM Transactions on Graphics (Proceeding of ACM SIGGRAPH) 24, 3, 434--444. Google ScholarDigital Library
- Zhou, K., Hou, Q., Wang, R., and Guo, B. 2008. Real-Time KD-Tree Construction on Graphics Hardware. In ACM Transactions on Graphics (Proceedings of SIGGRAPH ASIA), 1--11. Google ScholarDigital Library
Index Terms
- OptiX: a general purpose ray tracing engine
Recommendations
OptiX: a general purpose ray tracing engine
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 ...
Domain specific compilation in the NVIDIA OptiX ray tracing engine
DAMP '11: Proceedings of the sixth workshop on Declarative aspects of multicore programmingThe OptiX™ engine is a programmable ray tracing system designed for NVIDIA(R) GPUs and other highly parallel architectures. OptiX builds on the key observation that most ray tracing algorithms can be implemented using a small set of programmable ...
Interactive multi-pass programmable shading
SIGGRAPH '00: Proceedings of the 27th annual conference on Computer graphics and interactive techniquesProgrammable shading is a common technique for production animation, but interactive programmable shading is not yet widely available. We support interactive programmable shading on virtually any 3D graphics hardware using a scene graph library on top ...
Comments