28.06.2014 Views

Realtime Ray Tracing and Interactive Global Illumination - Scientific ...

Realtime Ray Tracing and Interactive Global Illumination - Scientific ...

Realtime Ray Tracing and Interactive Global Illumination - Scientific ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

26 Chapter 3: A Brief Survey of <strong>Ray</strong> <strong>Tracing</strong> Acceleration Methods<br />

“explosion of the ray tree”: If each surface shader on average shoots more<br />

than one secondary ray (e.g. one for reflection <strong>and</strong> one for refraction), the<br />

number of secondary rays grows exponentially with the recursion depth.<br />

However, secondary rays are usually weighed with reflection <strong>and</strong> refraction<br />

coefficients (usually depending on surface properties <strong>and</strong> incoming ray<br />

direction), which may get rather small. Furthermore, these attenuation factors<br />

multiply with each further surface interaction, resulting in most rays<br />

having a rather small pixel contribution. In order to avoid tracing all these<br />

“unimportant” rays, it is common to “prune” the ray tree by tracking each<br />

rays “pixel contribution”, <strong>and</strong> to terminate the recursion once this contribution<br />

drops below a certain threshold.<br />

However, simply terminating such rays without compensation results in<br />

a loss of illumination, <strong>and</strong> in “biased” images 8 Pruning the ray tree can also<br />

be made unbiased by terminating the rays probabilistically with correct reweighting<br />

(so-called russian roulette termination [Arvo90b]). This however<br />

usually leads to noise in the image, which might be even more disturbing to<br />

the viewer.<br />

3.2.6 Reflection Mapping <strong>and</strong> Shadow Maps<br />

Finally, the number of both secondary <strong>and</strong> shadow rays can be greatly reduced<br />

by approximating shadows <strong>and</strong> reflections with reflection maps <strong>and</strong><br />

shadow maps. Both reflection maps <strong>and</strong> shadow maps are well-known concepts<br />

in realtime rendering (see e.g. [Akenine-Möller02]). Though they are<br />

typically used in triangle rasterization to approximate effects that can not be<br />

computed at all, they can also be used in ray tracing to approximate effects<br />

rather than shooting rays for computing them.<br />

However, both methods are infamous for their tendency to generate artifacts.<br />

As such, they somewhat contradict the concepts of ray tracing, <strong>and</strong><br />

should be used with extreme care.<br />

3.2.7 Sample Reuse for Animations<br />

In the special case of ray tracing animations, it is also possible to reuse samples<br />

from other frames without re-tracing the respective rays. For example,<br />

Formella et al. [Formella94] has proposed to store the complete “ray tree” of<br />

each pixel, <strong>and</strong> to only re-trace those parts of a ray tree that are intersected<br />

8 Pruning by pixel contribution becomes especially problematic in scenes with strongly<br />

varying light source intensity: If connected to a bright light source, even a ray with small<br />

attenuation factors may still have a stronger impact than a less attenuated ray illuminated<br />

by a dark source.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!