Ray tracing hardware is a special purpose computer hardware design for accelerating real-time ray tracing.
The problem of rendering 3D graphics can be conceptually presented as finding all intersections between a set of "
primitivesThe term geometric primitive in computer graphics and CAD systems is used in various senses, with common meaning of atomic geometric objects the system can handle . Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well...
" (typically
trianglesA triangle is one of the basic shapes of geometry: a polygon with three corners or vertices and three sides or edges which are line segments. A triangle with vertices A, B, and C is denoted ....
or
polygonsIn geometry a polygon is traditionally a plane figure that is bounded by a closed path or circuit, composed of a finite sequence of straight line segments . These segments are called its edges or sides, and the points where two edges meet are the polygon's vertices or corners...
) and a set of "rays" (typically one or more per pixel).
Typical graphic acceleration boards, so called
GPUA graphics processing unit or GPU is a specialized processor that offloads 3D graphics rendering from the microprocessor. It is used in embedded systems, mobile phones, personal computers, workstations, and game consoles...
s, use rasterization algorithms. Using this approach, the GPU finds all intersections of a single primitive and all rays of the scene.
Ray tracing hardware is a special purpose computer hardware design for accelerating real-time ray tracing.
Ray Tracing vs. Rasterization
The problem of rendering 3D graphics can be conceptually presented as finding all intersections between a set of "
primitivesThe term geometric primitive in computer graphics and CAD systems is used in various senses, with common meaning of atomic geometric objects the system can handle . Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well...
" (typically
trianglesA triangle is one of the basic shapes of geometry: a polygon with three corners or vertices and three sides or edges which are line segments. A triangle with vertices A, B, and C is denoted ....
or
polygonsIn geometry a polygon is traditionally a plane figure that is bounded by a closed path or circuit, composed of a finite sequence of straight line segments . These segments are called its edges or sides, and the points where two edges meet are the polygon's vertices or corners...
) and a set of "rays" (typically one or more per pixel).
Typical graphic acceleration boards, so called
GPUA graphics processing unit or GPU is a specialized processor that offloads 3D graphics rendering from the microprocessor. It is used in embedded systems, mobile phones, personal computers, workstations, and game consoles...
s, use rasterization algorithms. Using this approach, the GPU finds all intersections of a single primitive and all rays of the scene. Well known brands such as Intel,
NVIDIANvidia is a multinational corporation which specializes in the development of graphics processing units and chipset technologies for workstations, personal computers, and mobile devices...
and
ATIAs a word, Ati may refer to:* Ati, a town in Chad* Ati, a Negrito ethnic group in the Philippines** Ati-Atihan Festival, an annual celebration held in the Philippines* Ati, a queen of the fabled Land of Punt in Africa...
have developed very efficient algorithms to do so.
The ray tracing algorithm solves the
renderingRendering is the process of generating an image from a model, by means of computer programs. The model is a description of three-dimensional objects in a strictly defined language or data structure. It would contain geometry, viewpoint, texture, lighting, and shading information. The image is a...
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 the complete scene is not needed. The drawback of rasterization is that non-local effects, like
reflectionsReflection in computer graphics is used to emulate reflective objects like mirrors and shiny surfaces.-Specular reflection:Specular reflection is the mirror-like reflection of light from a surface...
,
refractionRefraction is the change in direction of a wave due to a change in its velocity. This is most commonly observed when a wave passes from one medium to another...
,
shadowsA shadow is an area where direct light from a light source cannot reach due to obstruction by an object. It occupies all of the space behind an opaque object with light in front of it...
and realistic lighting, are very difficult to compute.
The ray tracing algorithm can also be
parallelizedParallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
very well if each ray is considered separately. However, memory
bandwidthIn computer networking and computer science, digital bandwidth, network bandwidth or just bandwidth is a measure of available or consumed data communication resources expressed in bit/s or multiples of it ....
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
complexityComputational complexity theory is a branch of the theory of computation in computer science that focuses on classifying computational problems according to their inherent difficulty. In this context, a computational problem is understood to be a task that is in principle amenable to being solved...
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 indexSpatial indexes are used by spatial databases to optimize spatial queries. Indexes used by non-spatial databases cannot effectively handle features such as how far two points differ and whether points fall within a spatial area of interest...
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
IrisGLIRIS GL was a proprietary graphics API created by Silicon Graphics for producing 2D and 3D computer graphics on their IRIX-based IRIS graphical workstations. Later SGI removed their proprietary code, reworked various system calls, and released IRIS GL as the industry standard OpenGL.- External...
on
Silicon GraphicsSilicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark and Abbey Silverstone...
systems. IrisGL used the Geometry Engine processors to achieve this. This feature was later abandoned when OpenGL replaced IrisGL.
Implementations
Today there are two existing implementations of ray tracing hardware:
- ART VPS company, situated in the UK, sells ray tracing hardware for offline rendering.
- Saarland University
Saarland University is a university located in Saarbrücken, the capital of the German state of Saarland. It was founded in 1948 in co-operation with France and is organized in 8 faculties that cover all major fields of science. The university is particularly well known for research and education...
, is striving to develop a real-time ray tracing chip. So far they have published two designs: SaarCORSaarCOR is an early experimental ray tracing hardware, developed at the Saarland University.As SaarCOR is not programmable, it accelerates only a small part of the ray tracing process that deals with finding intersections....
and the RPUThe Ray Processing Unit is experimental ray tracing hardware device, developed at the Saarland University. It will be 50-100 times faster than the most advanced graphics processing unit....
.