TRaX: A Multi-Threaded Architecture for Real-Time Ray Tracing

Ray tracing is a technique used for generating highly realistic computer graphics images. In this paper, we explore the design of a simple but extremely parallel, multi-threaded, multi-core processor architecture that performs real-time ray tracing. Our architecture, called TRaX for Threaded Ray eXecution, consists of a set of thread states that include commonly used functional units for each thread and share large functional units through a programmable interconnect to maximize utilization. The memory system takes advantage of the application's read-only access to the scene database and write-only access to the frame buffer output to provide efficient data delivery with a relatively simple structure. Preliminary results indicate that a multi-core version of the architecture running at a modest speed of 500 MHz already provides real-time ray traced images for scenes of a complexity found in video games. We also explore the architectural impact of a ray tracer that uses procedural (computed) textures rather than image-based (look-up) textures to trade computation for reduced memory bandwidth.

[1]  J. Davenport Editor , 1960 .

[2]  Edwin Earl Catmull,et al.  A subdivision algorithm for computer display of curved surfaces. , 1974 .

[3]  Turner Whitted,et al.  An improved illumination model for shaded display , 1979, CACM.

[4]  Robert L. Cook,et al.  Distributed ray tracing , 1984, SIGGRAPH.

[5]  James T. Kajiya,et al.  The rendering equation , 1986, SIGGRAPH.

[6]  Donald P. Greenberg,et al.  A radiosity method for non-diffuse environments , 1986, SIGGRAPH.

[7]  Roman Kuchkuda,et al.  An introduction to ray tracing , 1993, Comput. Graph..

[8]  Pat Hanrahan,et al.  Ray tracing on a connection machine , 1988, ICS '88.

[9]  Ken Perlin,et al.  An image synthesizer , 1988 .

[10]  Steven K. Feiner,et al.  Computer graphics: principles and practice (2nd ed.) , 1990 .

[11]  Thomas Ertl,et al.  Computer Graphics - Principles and Practice, 3rd Edition , 2014 .

[12]  James Arvo,et al.  A framework for realistic image synthesis , 1997, SIGGRAPH.

[13]  Peter Shirley,et al.  Realistic ray tracing , 2000 .

[14]  John C. Hart Perlin noise pixel shaders , 2001, HWWS '01.

[15]  Peter Shirley,et al.  Fundamentals of computer graphics , 2018 .

[16]  Hiroaki Kobayashi,et al.  Interactive Ray-Tracing on the 3DCGiRAM Architecture , 2002, MICRO 2002.

[17]  Ken Perlin,et al.  Improving noise , 2002, SIGGRAPH.

[18]  Philipp Slusallek,et al.  Realtime ray tracing of dynamic scenes on an FPGA chip , 2004, Graphics Hardware.

[19]  H. Peter Hofstee,et al.  Power efficient processor architecture and the cell processor , 2005, 11th International Symposium on High-Performance Computer Architecture.

[20]  P. Slusallek,et al.  RPU: a programmable ray processing unit for realtime ray tracing , 2005, SIGGRAPH '05.

[21]  Jörg Schmittler SaarCOR: a hardware architecture for realtime ray tracing , 2006 .

[22]  D.A. Balciunas,et al.  GPU-Assisted Ray Casting of Large Scenes , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

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

[24]  E. Brunvand,et al.  Estimating Performance of a Ray-Tracing ASIC Design , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[25]  Erik Brunvand,et al.  Rethinking graphics and gaming courses because of fast ray tracing , 2007, SIGGRAPH '07.

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

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

[28]  Jan Kautz,et al.  Packet-based whitted and distribution ray tracing , 2007, GI '07.