RTfact: Generic Concepts for Flexible and High Performance Ray Tracing

Iliyan Georgiev, Philipp Slusallek
IEEE/EG Symposium on Interactive Ray Tracing (IRT) 2008

Our ray tracing library can be used in a similar way to other generic libraries, such as STL. The user includes the desired RTfact headers in his or her application source files and instantiates the provided data structures and algorithms in the specific application. We have applied RTfact to several interactive visualization tasks, such as surface, point-based, and direct volume rendering. Creating custom rendering configurations boils down to combining different template classes.

Abstract

Thanks to more than a decade of research and the fast evolution of computer hardware, ray tracing is likely to become a commodity choice for adding complex lighting effects to real-time rendering engines. Nonetheless, interactive ray tracing research has been mostly concentrated on few specific combinations of data structures and algorithms. In this paper we present RTfact - an attempt to bring the different aspects of ray tracing together in a component oriented, generic, and portable way, without sacrificing the performance benefits of hand-tuned single-purpose implementations. RTfact is a template library consisting of packet-centric components combined into an efficient ray tracing framework. Our generic design approach with loosely coupled algorithms and data structures allows for easy integration of new algorithms with maximum runtime performance, while leveraging as much of the existing code base as possible. The efficiency of templates allows us to achieve fine component granularity and to incorporate a flexible physically based surface shading model, which enables exploitation of ray coherence. As a proof of concept we apply the library to a variety of rendering tasks and demonstrate its ability to deliver performance equal to currently existing optimized implementations.

Downloads and links

BibTeX reference

@inproceedings{Georgiev:08:RTfact,
  author = {Iliyan Georgiev and Philipp Slusallek},
  title = {{RTfact:} Generic Concepts for Flexible and High Performance Ray Tracing},
  booktitle = {Proceedings of IEEE/Eurographics Symposium on Interactive Ray Tracing},
  year = {2008},
  month = {August}
}