Speaker: Lukas Herzberger (193-02 Computer Graphics)
Recent advances in imaging modalities produce large-scale volumetric data sets with a large number of channels that require out-of-core direct volume rendering (DVR) methods such as octrees or page table hierarchies. For this reason, data sets are both down-sampled into a multi-resolution hierarchy and divided into smaller bricks, in order to stream only those parts of the volume contributing to the rendered image to the GPU. Furthermore, rendering multiple channels requires careful optimization because the high computational cost of DVR grows with the number of channels to render. A common optimization in DVR is empty space skipping where fully translucent regions in the volume are not sampled to reduce the number of loop iterations and texture look-ups during rendering.
Previous out-of-core DVR methods are designed for single channel volumes and are only suitable for multi-channel volumes to a limited extent. In octree-based methods, accessing cached volume data requires traversing the tree for each sample and channel. Furthermore, in previous approaches, the spatial subdivision of the octree is intrinsically coupled to the down-sampling ratio and bricking granularity in the data set. This leads to suboptimal cache utilization and makes fine-grained empty space skipping costly. Page table hierarchies, on the other hand, allow access to any cached brick from any resolution without traversing a tree structure. However, their support for empty space skipping is also tied to the bricking granularity in the data set and thus limited.
We present a hybrid multi-volume rendering approach based on a novel Residency Octree that combines the advantages of out-of-core volume rendering using page tables with those of standard octrees. We enable flexible mixed-resolution out-of-core multi-volume rendering by decoupling the cache residency of multi-resolution data from a resolution-independent spatial subdivision determined by the tree. Instead of one-to-one node to brick correspondences, each residency octree node is mapped to a set of bricks in each resolution level. This makes it possible to efficiently and adaptively choose and mix resolutions, adapt sampling rates, and compensate for cache misses. At the same time, residency octrees support fine-grained empty space skipping, independent of the data subdivision used for caching. Finally, to facilitate collaboration and outreach, and to eliminate local data storage, our implementation is a web-based, pure client-side renderer using WebGPU and WebAssembly. Our method is faster than prior approaches and efficient for many data channels with a flexible and adaptive choice of data resolution.