skip to main content
10.1145/1833349.1778803acmconferencesArticle/Chapter ViewAbstractPublication PagessiggraphConference Proceedingsconference-collections
research-article

OptiX: a general purpose ray tracing engine

Published:26 July 2010Publication History

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.

References

  1. Aila, T., and Laine, S. 2009. Understanding the Efficiency of Ray Traversal on GPUs. In Proceedings of High-Performance Graphics 2009, 145--149. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Caustic Graphics, 2009. Introduction to CausticRT. http://www.caustic.com/pdf/Introduction_to_CausticRT.pdf.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. Goldsmith, J., and Salmon, J. 1987. Automatic Creation of Object Hierarchies for Ray Tracing. IEEE Computer Graphics and Applications 7, 5, 14--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Green, S. A., and Paddon, D. J. 1990. A Highly Flexible Multiprocessor Solution for Ray Tracing. The Visual Computer 6, 2, 62--73.Google ScholarGoogle ScholarCross RefCross Ref
  10. 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 ScholarGoogle Scholar
  11. Havran, V. 2001. Heuristic Ray Shooting Algorithms. PhD thesis, Faculty of Electrical Engineering, Czech Technical University in Prague.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kajiya, J. T. 1986. The Rendering Equation. In Computer Graphics (Proceedings of ACM SIGGRAPH), 143--150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarCross RefCross Ref
  17. Lindholm, E., Nickolls, J., Oberman, S., and Montrym, J. 2008. NVIDIA Tesla: A Unified Graphics and Computing Architecture. IEEE Micro 28, 39--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. MacDonald, J. D., and Booth, K. S. 1989. Heuristics for Ray Tracing using Space Subdivision. In Proceedings of Graphics Interface, 152--63.Google ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Muuss, M. J. 1995. Towards Real-Time Ray-Tracing of Combinatorial Solid Geometric Models. In Proceedings of BRL-CAD Symposium.Google ScholarGoogle Scholar
  21. NVIDIA, 2010. NVIDIA OptiX Ray Tracing Engine Programming Guide Version 2.0. http://developer.nvidia.com/object/-optix-home.html.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarCross RefCross Ref
  25. Reshetov, A., Soupikov, A., and Hurley, J. 2005. Multi-Level Ray Tracing Algorithm. ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH), 1176--1185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarCross RefCross Ref
  27. Stich, M., Friedrich, H., and Dietrich, A. 2009. Spatial Splits in Bounding Volume Hierarchies. In Proceedings of High-Performance Graphics 2009, 7--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle Scholar
  29. Wald, I., Boulos, S., and Shirley, P. 2007. Ray Tracing Deformable Scenes using Dynamic Bounding Volume Hierarchies. ACM Transactions on Graphics 26, 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle Scholar
  31. Whitted, T. 1980. An Improved Illumination Model for Shaded Display. Commun. ACM 23, 6, 343--349. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. OptiX: a general purpose ray tracing engine

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            SIGGRAPH '10: ACM SIGGRAPH 2010 papers
            July 2010
            984 pages
            ISBN:9781450302104
            DOI:10.1145/1833349

            Copyright © 2010 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 26 July 2010

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            SIGGRAPH '10 Paper Acceptance Rate103of390submissions,26%Overall Acceptance Rate1,822of8,601submissions,21%

            Upcoming Conference

            SIGGRAPH '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader