Table of Contents
Fetching ...

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.

GPU Volume Rendering with Hierarchical Compression Using VDB

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.

Paper Structure

This paper contains 19 sections, 1 equation, 5 figures, 6 tables, 1 algorithm.

Figures (5)

  • Figure 1: WDAS cloud loaded in ParaView using the -1raw format encoding. Our renderer is integrated using the ANARI interface, structured-regular grids are automatically compressed and converted to NanoVDB.
  • Figure 2: Our algorithm assigns homogeneous blocks to regions that are considered nearly empty, and voxelizes regions that are not. The compression rates shown are: Top-left: 1:8, top-right: 1:5, bottom-left: 1:4, bottom-right: 1:3. Whether blocks become visible depends on the compression rate and the transfer function.
  • Figure 3: Similarity metrics and their impact on quality. The results represent PSNR for different compression rates using the WDAS cloud data set. Graphs for the other data sets look similar; we found the farthest and median point-in-range similarity metrics to outperform the closest point-in-range metric.
  • Figure 4: Quality comparison of our method with ZFP. We report mean squared error (MSE, lower is better) and peak signal-to-noise ratio (PSNR, in dB, higher is better) for the data sets from \ref{['tab:datasets']}, for compression rates between 1-20 %.
  • Figure 5: Direct image comparison between our compression and ZFP (we use dense textures to render the latter). The ZFP representation is obtained by compressing and directly decompressing the WDAS cloud, and rendering the resulting structured-regular volume with an implicit ISO surface ray marcher. The color mapping shows reconstructed surface normals. We compare the outcome using FLIP.