What is Ray Tracing?

May 15, 2002
245
0
0
Imagine a ray of light emanating from your eye, passing through your screen, and striking an object in a computer-generated scene. From there it may be absorbed, or it may reflect, refract, etc. Eventually the ray is absorbed by some object, or leaves the scene, or enters a light source, or gets reflected and re-reflected some number of times, etc.

Imagine many such rays (each emanating from your eye) -- such that one ray passes through each pixel on your screen.

By tracing each ray backwards a color and brightness can be assigned to each pixel of your screen, producing a very realistic image of the scene.

This is obviously a highly (over)simplified explanation, but perhaps it gets the idea across.
 

Deeko

Lifer
Jun 16, 2000
30,215
11
81
Yea...in essence its a way of rendering so that every ray of light is 'traced', that way its reaction with objects and whatnot are much more realistic. It requires immense amount of processing power.
 

GoodRevrnd

Diamond Member
Dec 27, 2001
6,803
581
126
When the computer is processing the rays, is it processing the 'rays' from the viewer, or the rays from various light sources?
 
May 15, 2002
245
0
0
It is the rays from the viewer that are processed because those are the rays that are "seen" by the viewer. The vast majority of the rays from the light source(s) never reach the viewer. That's the whole point of looking at just the rays from the viewer's eye that pass through pixels on the screen -- only those rays are visible to the viewer, and by tracing them backwards to the viewer's eye the appropriate color and brightness can be assigned to each pixel on the screen.

Check out this link, it might help:
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rt_java/raytrace.html
 

jbond04

Senior member
Oct 18, 2000
505
0
71
GoodRevrnd, where did you hear about raytracing? Most of raytracing's applications are in 3D animation/visualization, to create effects such as reflections, refractions, shadows, and (more recently) lighting effects.

There are two ways that raytracing works. There is the method that heliomphalodon described, where each ray is traced backwards from a pixel to the viewer, and then there is forward raytracing, where the ray is traced from an object outwards.

Each method has it's advantages and disadvantages, but it can be broken down like this:

Backwards raytracing (used in renderers such as finalRender, Brazil, Mental Ray, and VRay) is faster, because it only calculates the rays that are seen by the viewer. However, the rays must be calculated for each frame, since every frame displays a different set of pixels to the viewer.

Forwards raytracing (used in renderers such as Lightscape and Viz 4) is slower initially, but after all of the rays in a scene are calculated, then the image is rendered about as fast as a picture without raytracing. So forward raytracing has an initial performance hit (and it's one hell of a hit), but is then less computationally intensive afterwards.

In the end, backwards raytracing is the method best suited to real time applications, since most games contain fairly dynamic environments, which would cause either method of raytracing to recalculate certain parts of the scene.