“NanoVDB: A GPU-Friendly and Portable VDB Data Structure For Real-Time Rendering And Simulation” by Museth

  • ©Ken Museth

  • ©Ken Museth

  • ©Ken Museth

  • ©Ken Museth



Entry Number: 27


    NanoVDB: A GPU-Friendly and Portable VDB Data Structure For Real-Time Rendering And Simulation



    We introduce a sparse volumetric data structure, dubbed NanoVDB, which is portable to both C++11 and C99 as well as most graphics APIs, e.g. CUDA, OpenCL, OpenGL, WebGL, DirectX 12, OptiX, HLSL, and GLSL. As indicated by its name, NanoVDB is a mini- version of the much bigger OpenVDB library, both in terms of functionality and scope. However, NanoVDB offers one major ad- vantage over OpenVDB, namely support for GPUs. As such it is applicable to both CPU and GPU accelerated simulation and render- ing of high-resolution sparse volumes. In fact, it has already been adopted for real-time applications by several commercial renders and digital content creation tools, e.g. Autodesk’s Arnold, Blender, SideFX’s Houdini, and NVIDIA’s Omniverse just to mention a few.


    Yuanming Hu, Tzu-Mao Li, Luke Anderson, Jonathan Ragan-Kelley, and Frédo Durand. 2019. Taichi: A Language for High-Performance Computation on Spatially Sparse Data Structures. 38, 6 (2019).

    Ken Museth. 2013. VDB: High-resolution Sparse Volumes with Dynamic Topology. ACM Trans. Graph. 32, 3, Article 27 (July 2013), 22 pages. https://doi.org/10.1145/ 2487228.2487235

    Ken Museth. 2014. Hierarchical Digital Differential Analyzer for Efficient Ray-Marching in OpenVDB. Association for Computing Machinery.

    Michael B. Nielsen and Ken Museth. 2006. Dynamic Tubular Grid: An Efficient Data Structure and Algorithms for High Resolution Level Sets. 26, 3 (2006).

    Rajsekhar Setaluri, Mridul Aanjaneya, Sean Bauer, and Eftychios Sifakis. 2014. SPGrid: A Sparse Paged Grid Structure Applied to Adaptive Smoke Simulation. 33, 6 (2014).




    We thank NVIDIA for supporting and open sourcing this project. Major thanks goes to especially Wil Braithwaite, in particular for the interactive viewer, as well as Andrew Reidmeyer and Jeff Lait for their help with the port of NanoVDB to OpenCL and HLSL/GLSL.


ACM Digital Library Publication: