RTfact: Concepts for generic ray tracing

Iliyan Georgiev
MSc thesis, Saarland University, 2008

Our template library provides a flexible and extensible framework for testing and implementing diverse high-performance ray tracing based solutions. We demonstrate its capabilities on surface (left), point-based (middle), and volume (right) rendering algorithms.

Abstract

For a long time now, interactive 3D graphics has been dominated by rasterization algorithms. However, thanks to more than a decade of research and the fast evolution of computer hardware, ray tracing has recently achieved real-time performance. Thus, it is likely that ray tracing will 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 algorithms and data structures.

In this thesis 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 seamless integration of new algorithms with maximum run-time performance, while leveraging as much of the existing code base as possible.

The SIMD abstraction layer of RTfact enables easy porting to new microprocessor architectures with wider SIMD instruction sets without the need of modifying existing code. The efficiency of C++ 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 existing optimized implementations.

Downloads and links

BibTeX reference

@MastersThesis{Georgiev:2008:Thesis,
  title   = {{RT}fact: {C}oncepts for Generic Ray Tracing},
  author  = {Georgiev, Iliyan},
  school  = {Saarland University},
  address = {Saarbr{\"u}cken, Germany},
  Year    = {2008}
}