Home News What’s new in Houdini 9 

What’s new in Houdini 9: Volume primitives

Volume primitives let you use smoke and fluids in the modeler.

Overview

Houdini 9 supports a new “volume” primitive geometry type. The volume can represent varying amounts of density at points inside a volume (as in a cloud simulation), or distances between colliding surfaces (as in a fluid simulation).

  • You can use volumes inside objects to use clouds and fluids in the modeler.

  • You can export smoke and fluids from DOPs to a volume in SOPs to manipulate it using the modeling nodes.

  • You can create volumes at render time using procedural shaders.

  • You can shade volumes in mantra using the VEX Fog Volume shader.

  • You can use volumes with shadow maps, deep shadow maps, compositing, motion blur, and depth of field.

Create a volume primitive

  1. Create an object.

  2. At the geometry level of the object create an IsoOffset node and attach it to the geometry.

  3. In the parameter editor of the IsoOffset node, set the Output Type to SDF Volume, turn on the Invert Sign checkbox, and turn off the Laser Scan checkbox.

    Note

    You can modify the Divisions and Iso Divisions parameters to get a more detailed volume.

  4. Create a material in the SHOP network that consists of a VEX Volume Cloud shader and assign it to the object.

    For more information on creating and assigning materials, see the Materials help.

  5. Set up lights and shadows.

    For more information on setting up Lights see the Lights and Cameras help.

Use the Volume Mix SOP to mix volumes together. You can use common operations such as Add or write a custom expression to control the contribution from the mixing volumes.

Render a volume

  1. Create a VEX Fog Volume SHOP.

    Set the fog density, shadow density, and diffuse color.

  2. Assign the shader to the volume.

  3. Increase the Volume Step Size property on the Geometry object (on the Shading tab under Render) for faster renders but less accurate volumes.

Tip

You may need to enable or disable HOUDINI_OGL_ENABLE_SHADERS to see the shaded volume in the viewer.

For more information, see the Volumetric Rendering help.

Procedural volumes

You can use procedural shaders to create volumes at render time. You can write a procedural shader to compute a volume programmatically, or use the Mantra: Image3D Volume Procedural shader to stream a volume from an image3D file at render time.

Loading a volume from an image3d file at render time is very efficient (it uses the tiling file format to load data on demand). Otherwise, volumes are always loaded completely into memory.

See the Mantra: Image3D Volume Procedural for more information.