Ray tracing hardware

Ray tracing hardware is a special purpose computer hardware design for accelerating real-time ray tracing.

Ray tracing versus Rasterization
The problem of rendering 3D graphics can be conceptually presented as finding all intersections between a set of "primitives" (typically triangles or polygons) and a set of "rays" (typically one or more per pixel).

As of 2005, typical GPUs use rasterization algorithm. In this approach, in each step, the GPU finds all intersections of a single primitive and all rays of the screen.

The ray tracing algorithm solves the rendering problem in a different way. In each step, it finds all intersections of a single ray of light with all primitives of the scene.

Those approaches have different benefits and drawbacks. Rasterization can be performed in a stream-like manner, one triangle at the time, and access to complete scene is not needed. The drawback of rasterization is that non-local effects, like reflections, refraction, shadows and realistic lighting, are very difficult to compute.

The ray tracing algorithm needs access to a complete scene, but it can easily compute various kinds of global illumination, providing much more realistic effects than rasterization. An additional advantage is logarithmic complexity of ray tracing in number of scene objects and posibility of using more complex privitives without their prior triangulation. The biggest drawback is having to keep whole scene in memory, and the need for quite costly recomputations of indexes in case of highly dynamic scenes.

Implementations
As of 2005, there is the ART VPS company, situated in the UK, that sells ray tracing hardware for offline rendering.

The only existing realtime (or online) ray tracing hardware is highly experimental. The two implementations are SaarCOR and RPU, both created at the Saarland University.