Per H. Christensen, David M. Laur, Julian Fong, Wayne L. Wooten, Dana Batali
When rendering only directly visible objects, ray tracing a few
levels of specular reflection from large, low curvatures surfaces, and
ray tracing shadows from point-like light sources, the accessed geometry
is coherent and a geometry cache performs well. But in many other cases,
the accessed geometry is incoherent and a standard geometry cache performs
poorly: ray tracing of specular reflection from highly curved surfaces,
tracing rays that are many reflection levels deep, and distribution ray tracing
for wide glossy reflection, global illumination, wide soft shadows, and
ambient occlusion. Fortunately, less geometric accuracy is necessary in the
incoherent cases. This observation can be formalized by looking at the
ray differentials for different typics of scattering: coherent rays have
small differentials, while incoherent rays have large differentials. We utilize
this observation to obtain efficient multiresolution caching of geometry and
textures (including displacement maps) for classic and distribution
ray tracing in complex scenes. We use an existing multiresolution caching scheme
(originally developed for scanline rendering) for textures and displacement maps,
and introduce a multiresolution geometry caching scheme for tessellated surfaces.
The multiresolution geometry caching scheme makes it possible to efficiently
render scenes that, if fully tessellated, would use 100 times more memory than the
geometry cache size.
Published as pp. pp. 543-552 in Computer Graphics Forum (Eurographics 2003
Conference Proceedings), Blackwell Publishers, September 2003.