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.

16 Chapter 2: An Introduction to <strong>Ray</strong> <strong>Tracing</strong><br />

point, i.e. it returns a vector pointing towards this light source, the distance<br />

to this light source, <strong>and</strong> the “intensity” that this light sample contributes to<br />

the surface sample 9 .<br />

Environment Shaders: As the scene is often not “closed”, it may easily<br />

happen that rays are cast into directions in which there is no geometry that<br />

they can hit. Such rays get “lost” into the environment. In order to compute<br />

their contribution, they can be passed to an “environment shader” which typically<br />

looks up a value from a texture representing the distant environment.<br />

However, environment shaders can also be used to simulate more complex<br />

effects like skylight models.<br />

Volume Shaders, Pixel Shaders, etc.: Obviously, it is possible to extend<br />

the just mentioned shader concept even further. For example, it is often<br />

common to use “volume shaders” to compute the attenuation that a ray is<br />

subject to when traveling between two surfaces. As the volumetric effects<br />

are beyond the scope of current interactive ray tracing systems, we will not<br />

go into details here. Some ray tracers also support “pixel shaders” or “image<br />

shaders” that perform some post-filtering (e.g. tone mapping) on the image.<br />

This “shader concept” allows for a high degree of flexibility <strong>and</strong> extendibility.<br />

All the above mentioned shaders – except for volume shaders<br />

– are also supported in the RTRT/OpenRT system (see Part II). For some<br />

examples of what is possible with this concept, see Chapter 11.<br />

2.3 General <strong>Ray</strong> <strong>Tracing</strong> based Algorithms<br />

Though recursive ray tracing is undoubtedly the most common form of using<br />

ray shooting for generating images, there is also a wider range of “ray<br />

tracing algorithms” that do not fit the category of recursive ray tracing.<br />

For example, many global illumination algorithms only use ray tracing for<br />

visibility computations (like radiosity), or also start rays/paths at the light<br />

sources (like light path tracing, bidirectional path tracing, photon mapping,<br />

<strong>and</strong> metropolis light transport). <strong>Ray</strong> tracing is even being used for several<br />

applications outside the graphics domain. For example, it can be used for<br />

9 Note that “intensity” is actually the wrong term. In a physically correct renderer,<br />

the value returned by a light shader should actually be “radiance”. Still, “color” <strong>and</strong><br />

“intensity” of the light sample are more commonly used terms in practice. This may<br />

stem from the fact that in a general ray tracer light sources do not always have physical<br />

meanings (i.e. lights with negative power, or with constant distance falloff), for which the<br />

term “radiance” does not make sense.

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

Saved successfully!

Ooh no, something went wrong!