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 ecient ray tracing framework. Our
generic design approach with loosely coupled algorithms and data structures
allows for seamless integration of new algorithms with maximum runtime
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 eciency 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