Interactive Ray Tracing on PCs

For almost two decades, researchers have argued that ray tracing will eventually become faster than the rasterization technique that completely dominates today's graphics hardware. However, this has not yet happened. Ray tracing is still almost exclusively being used for off-line rendering of photorealistic images. It is commonly believed that ray tracing is simply too costly to ever challenge rasterization-based algorithms for interactive use.In this chapter, we show that interactive ray tracing is indeed possible on commodity PCs. We first present a highly optimized ray tracer that improves performance by more than an order of magnitude compared to currently available ray tracers. The new algorithm makes better use of computational resources such as caches and SIMD instructions, and better exploits image and object space coherence. Secondly, we show that this software implementation can challenge and even outperform high-end graphics hardware in interactive rendering performance for complex environments.We also demonstrate how ray tracing can be made to work efficiently on a cluster of commodity PCs without shared memory. The same techniques that increased the speed of the ray tracing algorithms also helps to hide latency and reduce bandwidth for network communication in a distributed setup. Finally we show that the distributed ray tracing algorithm can handle highly complex models of tens of millions of polygons while still achieving interactive frame rates of up to ten frames per second on a small cluster of seven PCs.