Ray tracing hardware
Encyclopedia
Ray tracing hardware is special purpose computer hardware designed for accelerating ray tracing calculations.

Introduction: Ray tracing and rasterization

The problem of rendering 3D graphics can be conceptually presented as finding all intersections between a set of "primitives
Geometric primitive
The term geometric primitive in computer graphics and CAD systems is used in various senses, with the common meaning of the simplest geometric objects that the system can handle . Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well...

" (typically triangle
Triangle
A 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 ....

s or polygon
Polygon
In geometry a polygon is a flat shape consisting of straight lines that are joined to form a closed chain orcircuit.A polygon is traditionally a plane figure that is bounded by a closed path, composed of a finite sequence of straight line segments...

s) and a set of "rays" (typically one or more per pixel).

Up to 2010 all typical graphic acceleration boards, called graphics processing unit
Graphics processing unit
A graphics processing unit or GPU is a specialized circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer intended for output to a display...

s (GPUs), use rasterization algorithms. The ray tracing algorithm solves the rendering
Rendering (computer graphics)
Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

 problem in a different way. In each step, it finds all intersections of a ray with a set of relevant primitives of the scene.

Both approaches have their own benefits and drawbacks. Rasterization can be performed using devices based on a stream computing model, one triangle at the time, and access to the complete scene is needed only once.For additional visualisations such as shadows, or reflections such as produced by a large flat body of water an addition pass of the scene graph is required for each effect The drawback of rasterization is that non-local effects, required for an accurate simulation of a scene, such as reflections
Reflection (computer graphics)
Reflection in computer graphics is used to emulate reflective objects like mirrors and shiny surfaces.Reflection is accomplished in a ray trace renderer by following a ray from the eye to the mirror and then calculating where it bounces from, and continuing the process until no surface is found, or...

 and shadow
Shadow
A 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. The cross section of a shadow is a two-dimensional silhouette, or reverse projection of the object blocking the...

s are difficult; and refraction
Refraction
Refraction is the change in direction of a wave due to a change in its speed. It is essentially a surface phenomenon . The phenomenon is mainly in governance to the law of conservation of energy. The proper explanation would be that due to change of medium, the phase velocity of the wave is changed...

s near impossible to compute.

The ray tracing algorithm is inherently suitable for scaling by parallelization
Parallel computing
Parallel 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,...

 of individual ray renders. However anything other than ray casting
Ray casting
Ray casting is the use of ray-surface intersection tests to solve a variety of problems in computer graphics. It enables spatial selections of objects in ascene by providing users a virtual beam as a visual cue extending...

 requires recursion of the ray tracing algorithm (and random access to the scene graph
Scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....

) to complete their analysis, since reflected, refracted, and scattered rays require that various parts of the scene be re-accessed in a way not easily predicted. But it can easily compute various kinds of physically correct effects, providing much more realistic impression than rasterization.Rasterisation methods are capable of generating realistic shadows (including shadows produced by partially transparent objects), and plane reflections easily (as of 2010), but does not easily implement reflections from non planar surfaces (excluding approximations using normal maps
Normal mapping
In 3D computer graphics, normal mapping, or "Dot3 bump mapping", is a technique used for faking the lighting of bumps and dents. It is used to add details without using more polygons. A common use of this technique is to greatly enhance the appearance and details of a low polygon model by...

) or refractions.


Whilst the complexity of the computation for rasterization scales linearly with number of trianglesAs a first approximation - more advanced implementations including those that implement occlusion culling or predicated rendering scale better than linearly for complex (especially high occluded) scenes (Note in common API's : DirectX 10 D3D10_QUERY_OCCLUSION_PREDICATE http://msdn.microsoft.com/en-us/library/ee415853(VS.85).aspx , in OpenGL 3.0 HP_occlusion_query ) the complexity of a properly implemented ray tracing algorithm scales logarithmically;That is if X is the number of triangles, then the number of computations to complete the scene is proportional to log(X) this is due to objects (triangles and collections of triangles) being placed into BSP trees or similar structures, and only being analyzed if a ray intersects with the bounding volume of the binary space partition.The same methods can be used in rasterization, but the culling is limited to those BSP partitions that lie within the much larger viewing frustum
Viewing frustum
In 3D computer graphics, the viewing frustum or view frustum is the region of space in the modeled world that may appear on the screen; it is the field of view of the notional camera. The exact shape of this region varies depending on what kind of camera lens is being simulated, but typically it is...

, with ray tracing the viewing frustum is replaced by the volume enclosed by a single ray (or ray bundle)


Implementations

Various implementations of ray tracing hardware have been created, both experimental and commercial:
  • (2002–2009) ART VPS company (founded 2002), situated in the UK, sold ray tracing hardware for off-line rendering. The hardware used multiple specialized processors that accelerated ray-triangle intersection tests. Software provided integration with Maya (see Autodesk Maya) and Max (see Autodesk 3ds Max) data formats, and utilized the Renderman scene description language for sending data to the processors (the .RIB or Renderman Interface Bytestream file format). As of 2010, ARTVPS no longer produces ray tracing hardware but continues to produce rendering software.

  • (2002) The computer graphics laboratory at Saarland University
    Saarland University
    Saarland University is a university located in Saarbrücken, the capital of the German state of Saarland, and Homburg. It was founded in 1948 in Homburg in co-operation with France and is organized in 8 faculties that cover all major fields of science...

     headed by Dr. -Ing Slusallek has produced prototype ray tracing hardware including the FPGA based fixed function data driven SaarCOR
    SaarCOR
    SaarCOR 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....

     (Saarbrücken’s Coherence Optimized Ray Tracer) chip and a more advanced programmable (2005) processor, the Ray Processing Unit
    Ray Processing Unit
    The 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....

    (RPU)

  • (1996) Researchers at Princeton university proposed using DSPs to build a hardware unit for ray tracing acceleration, named "TigerSHARK"

  • Implementations of volume rendering using ray tracing algorythms on custom hardware have also been proposed : (2002) VIZARD II or built (1999) : vg500 / VolumePro ASIC based system

  • Caustic Graphics have produced a plug in card, the "CausticOne" (2010) , that accelerates global illumination and other ray based rendering processes when coupled to a PC CPU and GPU. The hardware is designed to organize scattered rays (typically produced by global illumination problems) into more coherent sets (lower spatial or angular spread) for further processing by an external processor.

  • Siliconarts developed a dedicated real-time ray tracing hardware (2010). RayCore (2011), which is the world's first real-time ray tracing semiconductor IP, was announced.

Further reading

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK