OpenVDB is an Academy Award-winning C++ library comprising a hierarchical data structure and a suite of tools for the efficient manipulation of sparse, time-varying, volumetric data discretized on three-dimensional grids. It is based on VDB, which was developed by Ken Museth at DreamWorks Animation, and it offers an effectively infinite 3D index space, compact storage, fast data access, and a collection of algorithms specifically optimized for the data structure for common tasks such as filtering, CSG, compositing, numerical simulation, sampling, and voxelization from other geometric representations. The technical details of VDB are described in the paper "VDB: High-Resolution Sparse Volumes with Dynamic Topology".
OpenVDB is maintained by DreamWorks Animation and was developed primarily by
- Ken Museth
- Peter Cucka
- Mihai Aldén
- David Hill
Features and Tools
Efficient Data Structure
OpenVDB represents high-resolution sparse volumes compactly both in memory and on disk, via a novel hierarchical data structure that offers an effectively infinite 3D index space and via a custom, lossless codec for fast file I/O.
Fast Voxel Access
OpenVDB features fast (constant-time) random and sequential access to voxels. This is the result of a new, CPU-like caching scheme and compact, hierarchical bit mask iterators.
OpenVDB volumes can be generated robustly and efficiently from polygonal meshes or particles, and can be converted to adaptive meshes, point clouds, signed distance fields or fog volumes.
OpenVDB’s suite of filters for smoothing and applying noise to volumes forms the basis for DreamWorks Animation’s feature film cloud modeling toolset.
OpenVDB features fast morphological operations like dilation and erosion, which are essential when dealing with dynamic volumes, for example during level set interface tracking.
OpenVDB’s fast topological operations (union, intersection and difference) are the foundation for many of its sparse algorithms, in particular ones for masked filtering and meshing.
OpenVDB includes tools for advection of level sets or point clouds through vector fields, with the option to constrain points to surfaces, and tools to reshape, resample and segment volumes, highlighted by fast, seamless volumetric fracturing.
OpenVDB supports scalar- and vector-valued volumes and provides vector calculus and related operations such as gradient, Laplacian, closest-point transform and vector field curl and divergence.
OpenVDB includes a standalone OpenGL volume visualizer as well as a simple, fast command-line ray tracer that takes advantage of accelerated ray traversal methods.
OpenVDB provides a variety of efficient tools for procedurally combining volumes.
OpenVDB includes a Python module with functions for basic manipulation of volumes.
Side Effects Software
- Neil Dickson
- Halfdan Ingvarsson
- Jeff Lait
- Edward Lam
- John Lynch
- Adrian Saldanha
Pixar Animation Studios
- Julian Fong
- Mike Farnsworth
- Marcos Fajardo
- John Johansson
- Fredrik Salomonsson
- Dan Bailey
- Nick Avramoussis
Industrial Light & Magic
- Rick Hankins
- Jeff Budsberg
- Brett Miller