OpenVDB
12.0.0
|
Note: The dependency information on this page details a complete requirements list for building OpenVDB as a standalone package. If you wish to use OpenVDB with a supported 3rd party DCC (Houdini/Maya), make sure you've first read the Building OpenVDB information.
There are a number of optional and required dependencies necessary when building different components of OpenVDB. Below you'll find a full list of all dependencies, any minimum/recommended version requirements and some guides for getting these dependencies installed. You'll also find information on any known issues with particular software. Please report any issues not listed here to the OpenVDB TSC.
Note that OpenVDB is production tested against the VFX Reference Platform. Not all dependencies exist in the VFX Reference Platform, but for those that do, their specified versions are always recommended.
Component | Requirements | Optional |
---|---|---|
OpenVDB Core Library | CMake, C++17 compiler, TBB::tbb | Blosc, ZLib, Log4cplus, Imath::Imath, Boost::iostream |
OpenVDB Print | Core Library dependencies | - |
OpenVDB LOD | Core Library dependencies | - |
OpenVDB Render | Core Library dependencies | OpenEXR, Imath::Imath, libpng |
OpenVDB View | Core Library dependencies, OpenGL, GLFW3, GLEW* | - |
OpenVDB Python | Core Library dependencies, Python, nanobind | NumPy |
OpenVDB AX | Core Library dependencies, LLVM | Bison, Flex |
NanoVDB | - | Core Library, CUDA, TBB, Blosc, ZLib |
OpenVDB UnitTests | Core Library dependencies, GoogleTest | CppUnit** |
OpenVDB Documentation | Doxygen | - |
Package | Minimum | Recommended | Description | apt-get | Homebrew | Source |
---|---|---|---|---|---|---|
CMake | 3.20 | Latest | Cross-platform family of tools designed to help build software | Y | Y | https://cmake.org |
GCC | 11.2.1 | 11.2.1 | C++ 17 Compiler: The GNU Compiler Collection | Y | Y | https://www.gnu.org/software/gcc |
Clang | 5.0 | Latest | C++ 17 Compiler: A C language family frontend for LLVM | Y | Y | https://clang.llvm.org |
Intel ICC | 19 | Latest | C++ 17 Compiler: Intels C++ Compiler | Y | Y | https://software.intel.com/en-us/c-compilers |
MSVC | 19.30 | 19.30 | C++ 17 Compiler: Microsoft Visual C++ Compiler | Y | Y | https://visualstudio.microsoft.com/vs |
Imath | 3.1 | Latest | Half precision floating points | Y | Y | http://www.openexr.com |
OpenEXR | 3.1 | Latest | EXR serialization support | Y | Y | http://www.openexr.com |
TBB | 2020.3 | 2020.3 | Threading Building Blocks - template library for task parallelism | Y | Y | https://www.threadingbuildingblocks.org |
ZLIB | 1.2.7 | Latest | Compression library for disk serialization compression | Y | Y | https://www.zlib.net |
Boost | 1.80 | 1.82 | Components: iostreams | Y | Y | https://www.boost.org |
LLVM | 13.0.0 | 15.0.0* | Target-independent code generation | Y | Y | https://llvm.org/ |
Bison | 3.7.0 | 3.7.0 | General-purpose parser generator | Y | Y | https://www.gnu.org/software/gcc |
Flex | 2.6.4 | 2.6.4 | Fast lexical analyzer generator | Y | Y | https://github.com/westes/flex |
Python | 3.10 | 3.11 | The python interpreter and libraries | Y | Y | https://www.python.org |
nanobind | 2.0.0 | 2.1.0 | C++/python bindings | Y | Y | https://nanobind.readthedocs.io |
NumPy | 1.23.0 | 1.26.0 | Scientific computing with Python | Y | Y | http://www.numpy.org |
GoogleTest | 1.10 | Latest | A unit testing framework module for C++ | Y | Y | https://github.com/google/googletest |
CppUnit | 1.10 | Latest | A unit testing framework module for C++ | N | Y | https://freedesktop.org/wiki/Software/cppunit |
Blosc | 1.17.0* | 1.17.0 | Recommended dependency for improved disk compression | Y | Y | https://github.com/Blosc/c-blosc/releases |
Log4cplus | 1.1.2 | Latest | An optional dependency for improved OpenVDB Logging | Y | Y | https://github.com/log4cplus/log4cplus |
libpng | - | Latest | Library for manipulating PNG images | Y | Y | http://www.libpng.org/pub/png/libpng.html |
GLFW | 3.1 | > 3.3 | Simple API for OpenGL development | Y | Y | https://www.glfw.org |
OpenGL | 3.2 | Latest | Environment for developing portable graphics applications | Y | Y | https://www.opengl.org |
GLEW | 1.0.0 | Latest | A cross-platform OpenGL extension loading library. | Y | Y | http://glew.sourceforge.net |
CUDA | - | Latest | Parallel computing platform for graphical processing units. | Y | N | https://developer.nvidia.com/cuda-downloads |
Doxygen | 1.8.8 | 1.8.11 | Documentation generation from C++ | Y | Y | http://www.doxygen.nl |
For more information see:
This section details a number of ways to get you up and running with the required OpenVDB dependencies.
You can use apt to automatically install required packages. Note that different Ubuntu distributions will have different versions available. You can use apt pinning to request newer versions of specific package from later distributions if the required version isn't available by default (see man apt_preferences). For example, the below settings will request TBB specifically from Ubuntu 22.04 (Jammy).
Alternatively you can install any missing dependencies manually or through other package managers.
Homebrew is a package manager for UNIX systems and is an alternative to apt-get or manual installation from source.