Ray Tracing on a Stream Processor

Timothy J. Purcell, Ph.D. dissertation, Stanford University, March 2004.


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 program. We present a stream processor abstraction for the modern programmable graphics processor (GPU) --- allowing the GPU to execute stream programs. We describe an implementation of our streaming ray tracer on the GPU 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 GPU 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.


6.8 MB PDF
1.2 MB PDF (low res images)

Dissertation Defense Slides



(466 KB DivX) (760 KB DivX) (1.8 MB DivX) (1.0 MB DivX)