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.