Ray tracing on a stream processor

Ray tracing is an image synthesis technique which simulates the interaction of light with surfaces. Most high-quality, photorealistic renderings are generated by global illumination techniques built on top of ray tracing. Real-time ray tracing has been a goal of the graphics community for many years. Unfortunately, ray tracing is a very expensive operation. VLSI technology has just reached the point where the computational capability of a single chip is sufficient for real-time ray tracing. Supercomputers and clusters of PCs have only recently been able to demonstrate interactive ray tracing and global illumination applications. In this dissertation we show how a ray tracer can be written as a stream graphics processor (GPU)—allowing the CPU to execute stream programs. We describe an implementation of our streaming ray tracer on the CPU and provide an analysis of the bandwidth and computational requirements of our implementation. In addition, we use our ray tracer to evaluate simulated GPUs with enhanced program execution models. We also present an implementation and evaluation of global illumination with photon mapping on the CPU as an extension of our ray tracing system. Finally, we examine hardware trends that favor the streaming model of computation. Our results show that a GPU-based streaming ray tracer has the potential to outperform CPU-based algorithms without requiring fundamentally new hardware, helping to bridge the current gap between realistic and interactive rendering.

[1]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[2]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[3]  Jon Louis Bentley,et al.  Multidimensional binary search trees used for associative searching , 1975, CACM.

[4]  John G. Cleary,et al.  Analysis of an Algorithm for Finding Nearest Neighbors in Euclidean Space , 1979, TOMS.

[5]  Turner Whitted,et al.  A 3-dimensional representation for fast rendering of complex scenes , 1980, SIGGRAPH '80.

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

[7]  Isao Shirakawa,et al.  Links-1 - a parallel pipelined multimicrocomputer system for image creation , 1983, ISCA '83.

[8]  Andrew S. Glassner,et al.  Space subdivision for fast ray tracing , 1984, IEEE Computer Graphics and Applications.

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

[10]  Donald P. Greenberg,et al.  Modeling the interaction of light between diffuse surfaces , 1984, SIGGRAPH.

[11]  Tomoyuki Nishita,et al.  Continuous tone representation of three-dimensional objects taking account of shadows and interreflection , 1985, SIGGRAPH '85.

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

[13]  Editors , 1986, Brain Research Bulletin.

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

[15]  Takayuki Tanaka,et al.  ARTS: Accelerated Ray-Tracing System , 1986, IEEE Computer Graphics and Applications.

[16]  John Amanatides,et al.  A Fast Voxel Traversal Algorithm for Ray Tracing , 1987, Eurographics.

[17]  EUROGRAPHICS'87 , 1987 .

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

[19]  Holly E. Rushmeier,et al.  A progressive multi-pass method for global illumination , 1991, SIGGRAPH.

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

[21]  Reinhard Männer,et al.  VIRIM: A massively parallel processor for real-time volume visualization in medicine , 1994, Comput. Graph..

[22]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[23]  Jay Torborg,et al.  Talisman: commodity realtime 3D graphics for the PC , 1996, SIGGRAPH.

[24]  Henrik Wann Jensen,et al.  Global Illumination using Photon Maps , 1996, Rendering Techniques.

[25]  Tomas Akenine-Möller,et al.  Fast, Minimum Storage Ray-Triangle Intersection , 1997, J. Graphics, GPU, & Game Tools.

[26]  Bruce Anderson,et al.  Accommodating memory latency in a low-cost rasterizer , 1997, HWWS '97.

[27]  Wolfgang Straßer,et al.  VIZARD—visualization accelerator for realtime display , 1997, HWWS '97.

[28]  Vivek Sarkar,et al.  Baring It All to Software: Raw Machines , 1997, Computer.

[29]  Peter-Pike J. Sloan,et al.  Interactive ray tracing for isosurface rendering , 1998, Proceedings Visualization '98 (Cat. No.98CB36276).

[30]  Bengt-Olaf Schneider,et al.  Siggraph/Eurographics Workshop on Graphics Hardware , 1998 .

[31]  Homan Igehy,et al.  Prefetching in a texture cache architecture , 1998, Workshop on Graphics Hardware.

[32]  Peter-Pike J. Sloan,et al.  Interactive ray tracing , 1999, SI3D.

[33]  Hanspeter Pfister,et al.  The VolumePro real-time ray-casting system , 1999, SIGGRAPH.

[34]  Yves D. Willems,et al.  Density Control for Photon Maps , 2000, Rendering Techniques.

[35]  Erik Reinhard,et al.  Dynamic Acceleration Structures for Interactive Ray Tracing , 2000, Rendering Techniques.

[36]  Marc Olano,et al.  Interactive multi-pass programmable shading , 2000, SIGGRAPH.

[37]  William J. Dally,et al.  Smart Memories: a modular reconfigurable architecture , 2000, ISCA '00.

[38]  William J. Dally,et al.  Efficient conditional operations for data-parallel architectures , 2000, MICRO 33.

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

[40]  H. Jensen Realistic Image Synthesis Using Photon Mapping , 2001 .

[41]  David K. McAllister,et al.  Fast Matrix Multiplies Using Graphics Hardware , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[42]  Kimmo Karhu Displacement Mapping , 2002 .

[43]  D. Marr,et al.  Hyper-Threading Technology Architecture and MIcroarchitecture , 2002 .

[44]  Anselmo Lastra,et al.  Physically-based visual simulation on graphics hardware , 2002, HWWS '02.

[45]  Henry Hoffmann,et al.  A stream compiler for communication-exposed architectures , 2002, ASPLOS X.

[46]  Philipp Slusallek,et al.  SaarCOR: a hardware architecture for ray tracing , 2002, HWWS '02.

[47]  Henry Hoffmann,et al.  The Raw Microprocessor: A Computational Fabric for Software Circuits and General-Purpose Programs , 2002, IEEE Micro.

[48]  John C. Hart,et al.  The ray engine , 2002, HWWS '02.

[49]  Timothy A. Davis,et al.  Practical Parallel Rendering , 2002 .

[50]  Michael D. McCool,et al.  Low latency photon mapping using block hashing , 2002, HWWS '02.

[51]  Philipp Slusallek,et al.  Interactive Global Illumination using Fast Ray Tracing , 2002, Rendering Techniques.

[52]  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..

[53]  Jaehyuk Huh,et al.  Exploiting ILP, TLP, and DLP with the polymorphous TRIPS architecture , 2003, ISCA '03.

[54]  Greg Humphreys,et al.  A multigrid solver for boundary value problems using programmable graphics hardware , 2003, HWWS '03.

[55]  Jung Ho Ahn,et al.  Merrimac: Supercomputing with Streams , 2003, ACM/IEEE SC 2003 Conference (SC'03).

[56]  Pat Hanrahan,et al.  Photon mapping on programmable graphics hardware , 2003, HWWS '03.

[57]  Philipp Slusallek,et al.  Realtime Ray Tracing and its use for Interactive Global Illumination , 2003, Eurographics.

[58]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[59]  Eitan Grinspun,et al.  Sparse matrix solvers on the GPU: conjugate gradients and multigrid , 2003, SIGGRAPH Courses.

[60]  Intel Corportation,et al.  IA-32 Intel Architecture Software Developers Manual , 2004 .

[61]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, ACM Trans. Graph..

[62]  Ingo Wald,et al.  Realtime ray tracing and interactive global illumination , 2004, Ausgezeichnete Informatikdissertationen.

[63]  Peter-Pike J. Sloan,et al.  Interactive ray tracing for volume visualization , 1999, IEEE Trans. Vis. Comput. Graph..

[64]  Rüdiger Westermann,et al.  Linear algebra operators for GPU implementation of numerical algorithms , 2003, SIGGRAPH Courses.

[65]  Tomas Akenine-Möller,et al.  Fast, Minimum Storage Ray-Triangle Intersection , 1997, J. Graphics, GPU, & Game Tools.