Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

OpenVDB is an open source hierarchical data structure for volumes.   It has become the standard for interchange of volumetric data between applications.  For more information about OpenVDB, see the OpenVDB FAQ .

 

Warning

Houdini 16 uses OpenVDB 3.3.0 but RenderMan currently supports OpenVDB 3.1.0.

You can ignore the message: "unsupported VDB file format (expected version 223 or earlier, got version 224)". The volume still renders correctly.

But if your vdb file is created with OpenVDB 3.3.0 using Points, RenderMan will ignore it.

...

In Houdini 16.0.655 onward, we simply create a Geometry SOP.  Dive Dive inside the node and set the File SOP's Geometry File parameter to point to  your .vdb file.  ThatThat's it!  RenderMan RenderMan for Houdini will automatically detects detect the bounding box and all the VDB grid names.

Assign PxrVolume or your volume Bxdf to the Geometry node.  DonDon't forget to set the density primvar name (which matches the density grid name in your .vdb file) appropriately in PxrVolume.

...

To render a Houdini volume network or a non-VDB file, connect it to a Convert VDB SOP.  Change "Convert To" to VDB.  When you render, RenderMan for Houdini will automatically writes write out the .vdb file to the Houdini temporary directory and use blobbydso:impl_openvdb procedural to read the .vdb file.  This This way, we are utilizing the efficient VDB format and not emitting RiVolume data that could get very big which cause creates a huge .rib file.

Warning

Houdini pyro effects currently do not work with ConvertVDB in RenderMan for Houdini. This is a Houdini bug that has been reported.

...

If you already have a .vdb file, RenderMan will read it with blobbydso:impl_openvdb procedural without converting the .vdb file to volume.    Before Houdini 16.0.655, the only way is to create a box SOP and manually specify the Post include to inject it to the RIB.

...

Make sure $RMANTREE/lib/plugins is in your Procedural Path.   This is required for finding the impl_openvdb.so.

...

Create a box OBJ. In the box's Render/Geometry's Obj post-include, include the RIVolume RiVolume that will be emitted to the RIB.

...

  • Set your bounding box:  the numbers in [] after "blobbydso:impl_openvdb" is the bounding box for the vdb.  
  • Set the path and filename of the vdb after "constant string[2] blobbydso:stringargs". 
  • Set the channel name(s).   The default channel of your vdb file is not required to be "density".  You just need to rename "density" to the channel in your vdb file.
  • If you have more than one channel name, you can append it to the list, e.g. "constant string[2] blobbydso:stringargs" ["$HIP/vdb/smoke.vdb" "density" "velocity"].

...