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.
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