RTfact: Generic concepts for flexible and high performance ray tracing

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. RT-fact 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 run-time 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.

[1]  William Mark Future graphics architectures , 2008, SIGGRAPH '08.

[2]  Markus Wagner,et al.  Interactive Distributed Ray Tracing of Highly Complex Models , 2001, Rendering Techniques.

[3]  Ingo Wald,et al.  Ray tracing deformable scenes using dynamic bounding volume hierarchies , 2007, TOGS.

[4]  I. Wald,et al.  Ray Tracing on the Cell Processor , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[5]  Alexander A. Stepanov,et al.  Generic Programming , 1988, ISSAC.

[6]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[7]  Peter-Pike J. Sloan,et al.  Interactive Ray Tracing for Volume Visualization , 1999, IEEE Trans. Vis. Comput. Graph..

[8]  Markus Wagner,et al.  Interactive Rendering with Coherent Ray Tracing , 2001, Comput. Graph. Forum.

[9]  Charles D. Hansen,et al.  Distributed interactive ray tracing for large volume visualization , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[10]  Michael J. Muuss Towards real-time ray-tracing of combinatorial solid geometric models , 1995 .

[11]  Pat Hanrahan,et al.  Ray tracing on a stream processor , 2004 .

[12]  Jeremy G. Siek,et al.  A Modern Framework for Portable High-Performance Numerical Linear Algebra , 2000 .

[13]  Kellogg S. Booth,et al.  Report from the chair , 1986 .

[14]  Jacco Bikker,et al.  Real-time Ray Tracing through the Eyes of a Game Developer , 2007, 2007 IEEE Symposium on Interactive Ray Tracing.

[15]  S. Boulos,et al.  RTSL: a Ray Tracing Shading Language , 2007, 2007 IEEE Symposium on Interactive Ray Tracing.

[16]  Alexander Reshetov,et al.  Multi-level ray tracing algorithm , 2005, ACM Trans. Graph..

[17]  Philipp Slusallek,et al.  The OpenRT Application Programming Interface - Towards A Common API for Interactive Ray Tracing , 2003 .

[18]  Peter-Pike J. Sloan,et al.  Interactive ray tracing , 2005, SIGGRAPH Courses.

[19]  Kevin Skadron,et al.  Scalable parallel programming , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[20]  S.G. Parker,et al.  Design for Parallel Interactive Ray Tracing Systems , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[21]  Greg Humphreys,et al.  Physically Based Rendering: From Theory to Implementation , 2004 .

[22]  H.-P. Seidel,et al.  Realtime Ray Tracing on GPU with BVH-based Packet Traversal , 2007, 2007 IEEE Symposium on Interactive Ray Tracing.