Realtime Ray Tracing and Interactive Global Illumination - Scientific ...
Realtime Ray Tracing and Interactive Global Illumination - Scientific ...
Realtime Ray Tracing and Interactive Global Illumination - Scientific ...
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