Blender 2.83: Volume Object
OpenVDB files can now be imported and rendered with the new volume object. OpenVDB files may be generated by other software such as Houdini, or in Blender's fluid simulation cache.
Volume objects can be created with the Add menu in the 3D viewport, or using drag & drog of .vdb files into Blender. For animations, a frame sequence of OpenVDB files can be imported. The settings for volume sequences are the same as image sequences.
Volumes can be displayed both in wireframe and solid mode. The following settings are available:
- Wireframe Type: bounds, boxes or points
- Wireframe Detail: coarse or fine
- Density: thickness of volume drawing in the viewport
For heavy volume datasets, it can be useful to set the object to always display as wireframe. This way the viewport remains reponsive but the volume still appears in the final render.
Rendering volumes works the same as rendering smoke simulations. By default the Principled Volume shader is used for rendering volume objects. It will use grids named
temperature by default. If these are not available, another grid name must be chosen in the shader nodes.
- Space: specify volume density and step size in object or world space. By default object space is used, so that the volume opacity and detail remains the same regardless of object scale.
- Step Size: distance between volume samples. When zero it is automatically estimated based on the voxel size.
- Clipping: Value under which voxels are considered empty space to optimize rendering.
Cycles volume render settings were also changed, to automatically estimate step size.
- OpenVDB excels at representing sparse volumes, that aren't necessarily concentrated within a tight bounding box but may be spread out through space. However in Blender, these are still rendered as dense volumes which is not ideal for performance and memory usage. We plan to work on this still for 2.83 and future releases.
- OpenVDB files can also store level sets and points. While level set grids can be read, there is no current support for rendering them as surfaces. Importing OpenVDB points is not supported.
- We plan to make the volume object more powerful in the future with support for modifiers.