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.

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

As such, practical scenes (which usually contain both many light sources<br />

as well as specular objects) require a large number of rays per pixel. Reducing<br />

this number can then lead to significant improvements in rendering time.<br />

3.2.1 Shadow Caching<br />

Typically, the majority of all rays shot in a ray tracer are shadow rays,<br />

as each primary or secondary ray usually triggers many shadow rays. For<br />

shadow rays, however, it is sufficient to find any occluding object to guarantee<br />

occlusion. Furthermore, many shadow rays are very similar (e.g. all shadow<br />

rays to the same point light source), <strong>and</strong> are often occluded by the same<br />

object. “Shadow caching” [Haines86] exploits this coherence by storing at<br />

each light source the last occluder. Each new shadow ray to this light source is<br />

then first intersected with this cached occluder. If any of these cached object<br />

yields a positive intersection, occlusion of the shadow ray is guaranteed,<br />

thus the shadow ray does not have to be traced any more. For many light<br />

sources with a high degree of occlusion, shadow caching can greatly reduce<br />

the number of shadow rays. Furthermore, shadow caching does not require<br />

any approximations, does not generate any artifacts, <strong>and</strong> is orthogonal to<br />

most other techniques (i.e. it can easily be combined with other techniques).<br />

However, shadow caching also has some drawbacks: For example, it<br />

quickly breaks down if the primary <strong>and</strong> shadow rays get incoherent, as<br />

this leads to “thrashing” of the shadow caches. This is especially true for<br />

area light sources <strong>and</strong> global illumination algorithms. Even worse, by design<br />

shadow caches can only accelerate shadow rays that are actually occluded.<br />

For non-occluded shadow rays, there is even some overhead due to the cost for<br />

intersecting with the cached occluder. Finally, shadow caching often breaks<br />

down in complex scenes, as small triangles are less likely to occlude several<br />

successive shadow rays. Due to these reasons, shadow caching is generally<br />

not used in the RTRT/OpenRT engine.<br />

3.2.2 Local <strong>Illumination</strong> Environments<br />

Recently, a more sophisticated optimization for shadow rays has been proposed<br />

in the form of “Local <strong>Illumination</strong> Environments” [Fern<strong>and</strong>ez02] (also<br />

dubbed “LIEs”): LIEs subdivide the scene into a set of “voxels”, each of<br />

which stores information on how the different light sources influence that<br />

respective region of space. Each voxel stores a list of light sources that will<br />

be fully occluded, fully visible, or partially visible with respect to that voxel.<br />

With this information, the number of shadow rays to be show can be significantly<br />

reduced: Light sources that are fully occluded from the respective

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

Saved successfully!

Ooh no, something went wrong!