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

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

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

Saved successfully!

Ooh no, something went wrong!