GPU Volume Rendering with Hierarchical Compression Using VDB
Stefan Zellmann, Milan Jaros, Jefferson Amstutz, Ingo Wald
TL;DR
The paper addresses the memory bottleneck of GPU-based volume rendering for large volumetric datasets in scientific visualization. It proposes a fixed-rate, hierarchical compression pipeline that converts dense 3D grids to OpenVDB, then to NanoVDB for on-the-fly GPU sampling, enabling per-thread decompression. Key contributions include a fixed-rate compression algorithm with hierarchical encoding implemented in OpenVDB, on-the-fly GPU decompression via NanoVDB during an ANARI-based path-tracer, and a comprehensive evaluation against dense textures and ZFP. The results show reduced memory footprint with competitive performance, enabling scalable sci-vis rendering even in incoherent Monte Carlo paths, making VDB a viable drop-in replacement for structured grids in GPU volume rendering.
Abstract
We propose a compression-based approach to GPU rendering of large volumetric data using OpenVDB and NanoVDB. We use OpenVDB to create a lossy, fixed-rate compressed representation of the volume on the host, and use NanoVDB to perform fast, low-overhead, and on-the-fly decompression during rendering. We show that this approach is fast, works well even in a (incoherent) Monte Carlo path tracing context, can significantly reduce the memory requirements of volume rendering, and can be used as an almost drop-in replacement into existing 3D texture-based renderers.
