Skip to main content Skip to main navigation

Publikation

RaTrace: Simple and Efficient Abstractions for BVH Ray Traversal Algorithms

Arsène Pérard-Gayot; Martin Weier; Richard Membarth; Philipp Slusallek; Roland Leißa; Sebastian Hack
In: Proceedings of the 16th International Conference on Generative Programming: Concepts & Experiences (GPCE). International Conference on Generative Programming: Concepts & Experiences (GPCE-17), October 23-24, Vancouver, BC, Canada, Pages 157-168, ACM, 10/2017.

Zusammenfassung

In order to achieve the highest possible performance, the ray traversal and intersection routines at the core of every high-performance ray tracer are usually hand-coded, heavily optimized, and implemented separately for each hardware platform—even though they share most of their algorithmic core. The results are implementations that heavily mix algorithmic aspects with hardware and implementation details, making the code non-portable and difficult to change and maintain.

In this paper, we present a new approach that offers the ability to define in a functional language a set of conceptual, high-level language abstractions that are optimized away by a special compiler in order to maximize performance. Using this abstraction mechanism we separate a generic ray traversal and intersection algorithm from its low-level aspects that are specific to the target hardware. We demonstrate that our code is not only significantly more flexible, simpler to write, and more concise but also that the compiled results perform as well as state-of-the-art implementations on any of the tested CPU and GPU platforms.

Projekte

Weitere Links