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.

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

have to be traced, <strong>and</strong> can achieve interactive update rates even on a single<br />

desktop PC. The number of rays shot in vertex tracing also depends to a large<br />

degree on how often triangles are subdivided. Obviously, coarser subdivision<br />

is much faster, but is also likely to miss certain features, <strong>and</strong> thus to generate<br />

disturbing artifacts. In order to increase interactivity, vertex tracing allows<br />

for interactively changing the quality parameters: During user interaction,<br />

reduced quality parameters are used for fast user feedback, while the image<br />

is progressively improved as soon as interaction stops.<br />

However, using reduced quality settings can result in rather poor rendering<br />

quality due to excessive interpolation <strong>and</strong> under-sampling of features.<br />

This becomes especially pronounced if the image to be rendered contains<br />

many detailed features.<br />

3.1.3 The Render Cache<br />

Another combination of interpolation <strong>and</strong> sparse sampling of the image plane<br />

is Walter et al.’s “Render Cache” approach [Walter99, Walter02]: The render<br />

cache keeps a cache of “old” image samples from previous frames, <strong>and</strong> reprojects<br />

those to each new frame. These reprojected samples provide a sparse<br />

sampling of the image plane, our of which the full image is then reconstructed<br />

using certain heuristics to resolve occlusion, disocclusion, <strong>and</strong> interpolation<br />

inbetween samples.<br />

Asynchronously to this reprojection process, new samples are generated<br />

by continuously tracing new rays. To improve performance, the render cache<br />

uses heuristics to decide which regions of the image plane need to be sampled<br />

most, <strong>and</strong> preferably generates new samples in those regions. New samples<br />

are inserted into the render cache data structure, thereby evicting older samples.<br />

The render cache allows for decoupling frame rate from sample generation<br />

speed, <strong>and</strong> therefore allows interactive frame rates even for very slow<br />

renderers. However, the reprojection <strong>and</strong> image reconstruction steps are<br />

quite costly, <strong>and</strong> only really pay off for extremely costly renderers. As such,<br />

the render cache is most beneficial for extremely complex computations, such<br />

as global illumination. For simple ray tracing, however, it is often faster to<br />

simply ray trace the whole image.<br />

However, the worst problem of the render cache is its limited rendering<br />

quality: Even though the render cache uses several heuristics to resolve the<br />

worst artifacts, not all artifacts can be avoided: While the render cache<br />

quickly converges to a high-quality image when no user interaction occurs,<br />

under-sampling of certain objects or image regions, use of outdated samples,<br />

<strong>and</strong> excessive blurring (especially across under-sampled discontinuities) are

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

Saved successfully!

Ooh no, something went wrong!