Ray tracing hardware

From Wikipedia, the free encyclopedia

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

[edit] Ray Tracing vs. 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).

Typical graphic acceleration boards, so called 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. Well known brands such as Intel, NVIDIA and ATI have developed very efficient algorithms to do so.

The ray tracing algorithm solves the rendering problem in a different way. In each step, it finds all intersections of a single ray with all primitives of the scene. The ray tracing algorithm has been around for some decades, but only recent research has led to interactive ray tracing that is able to compute this algorithm at more than several frames per second for complex scenes.

Both 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 can also be parallelized very well if each ray is considered separately. However, memory bandwidth is crucial, as various parts of the scene need to be accessed. But it can easily compute various kinds of physically correct effects, providing much more realistic impression than rasterization.

An additional advantage is logarithmic complexity of ray tracing in number of scene objects and possibility of using more complex primitives without their prior triangulation. The biggest drawback for real time ray tracing is the need for quite costly recomputations of spatial index structures in case of highly dynamic scenes. Some problems remain to be solved, such as ray tracing of lines and text.

In the past, raytracing could be done in hardware with IrisGL on Silicon Graphics systems. IrisGL used the Geometry Engine processors to achieve this. This feature was later abandoned when OpenGL replaced IrisGL.

[edit] Implementations

Today there are two existing, and one future implementation of ray tracing hardware:

  • ART VPS company, situated in the UK, sells ray tracing hardware for offline rendering.
  • Saarland University, is striving to develop a real-time ray tracing chip. So far they have published two designs: SaarCOR and the RPU.
  • Intel Larrabee