Factors Affecting OptiX Performance in Ray Tracing for Metrology


Author/Creator ORCID




Computer Science and Electrical Engineering


Computer Science

Citation of Original Publication


Distribution Rights granted to UMBC by the author.
This item may be protected under Title 17 of the U.S. Copyright Law. It is made available by UMBC for non-commercial research and education. For permission to publish or reproduce, please see http://aok.lib.umbc.edu/specoll/repro.php or contact Special Collections at speccoll(at)umbc.edu


With the increasing prevalence of ray tracing cores in modern graphics cards, ray tracing based applications can see huge running time improvements. Simulations for x-rays and other electromagnetic radiation have long used ray tracing to predict results to allow for more narrow testing regimens to reduce the number of expensive experiments to run. OptiX is an API developed by NVIDIA to make hardware accelerated ray tracing applications easier and it has been shown to speed up many different ray tracing electromagnetic radiation simulations. Because there are many different approaches to scene and data representation, knowing how different simulation factors affect the running time of an OptiX simulation can help suggest which approaches and applications are the most applicable. This work explores the trends of running time against a variety of factors seen in a basic x-ray particle simulation, from scene representation, to simulation accuracy, to the amount and type of recorded data. We found that OptiX scales logarithmically in rendering time as a function of the number of scene objects, whereas loading the scene into the main data structures and increasing the number of rays scale linearly. Many strategies that reduce the number of triangles and other primitives that need to be loaded have the potential to greatly improve running time, such as adding spheres as primitives, or eliminating unneeded voxels in a voxel grid. Knowing these trends and comparisons between methods can lead to smarter design choices in production code, like choosing to recast from a new location in the same scene versus regenerating it. It can also lead to interesting future research, such as whether work to reduce voxel grids into sparse grids or independent meshes is faster than simpler approaches.