Realtime Ray Tracing and Interactive Global Illumination - Scientific ...
Realtime Ray Tracing and Interactive Global Illumination - Scientific ...
Realtime Ray Tracing and Interactive Global Illumination - Scientific ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
34 Chapter 3: A Brief Survey of <strong>Ray</strong> <strong>Tracing</strong> Acceleration Methods<br />
3.4 Summary<br />
In this chapter we have given a brief overview over the different methods <strong>and</strong><br />
techniques for accelerating ray tracing that have been proposed over the last<br />
two decades. As mentioned in the beginning, this list of techniques is not<br />
complete, but should contain at least the most famous <strong>and</strong> most commonly<br />
used techniques.<br />
Among all these techniques, hierarchical subdivision methods are the<br />
most important, as they allow for reducing the computational complexity<br />
(from O(N) to O(log N) [Havran01]), whereas all other methods, roughly<br />
speaking, only improve “the constants” of the ray tracing algorithm. As<br />
such, any non-trivial ray tracing system today uses one or another form of<br />
the previously discussed scene subdivision <strong>and</strong> traversal techniques.<br />
While all of these acceleration methods are commonly agreed to have the<br />
same computational complexity of O(NlogN), their respective performance<br />
in practive varies from case to case, depending on scene, implementation,<br />
hardware platform, <strong>and</strong> application (i.e. ray distribution). As such, it is<br />
not possible to name one single method that is always best, though practice<br />
has shown that kd-trees usually perform at least comparable to any<br />
other technique [Havran01, Havran00]. Though much of the original ray<br />
tracing literature covers Octrees, in practive today the most commonly used<br />
techniques are either uniform grids or kd-trees. Grids (especially uniform<br />
ones) are advantageous because of their simplicity. Because of this, they are<br />
also well suited for implementation on hardware architectures with restricted<br />
propgramming model (such as e.g. GPUs) 15 ), whereas kd-trees usually adapt<br />
better to varying scene complexity, <strong>and</strong> often achieve superior performance<br />
if used correctly.<br />
Except for faster intersection tests <strong>and</strong> hierarchical subdivision, most of<br />
the other previously discussed techniques (such as reducing the number of<br />
rays in one or another form) are limited to special cases <strong>and</strong> to a restricted<br />
set of applications. As such they are of limited use for a ray tracing system<br />
that is to be used for as many applications as possible, <strong>and</strong> will thus not<br />
receive any further attention in the remainder of this thesis. Even so, many<br />
of those are orthogonal to the techniques used by RTRT/OpenRT, <strong>and</strong> can<br />
still be combined with the RTRT/OpenRT system to achieve even higher<br />
performance for those applications in which they are effective.<br />
In order to be as wide a class of applications as possible the RTRT core<br />
has concentrated mostly on those topics that influence the performance of<br />
15 Uniform grids do not need to maintain a recursion stack, <strong>and</strong> can be implemented<br />
with few floating point operations