Volumes


Volume file formats, such as OpenVDB, will allow storage of much larger datasets while being optimized for random access to volume data, which is more efficient for rendering. OpenVDB is an open source C++ library comprising a novel hierarchical data structure and a suite of tools for the efficient storage and manipulation of sparse volumetric data discretized on three-dimensional grids.

Tutorials about working with volumes can be found here.

 

  • The Volume object is available in the Create tab, Geometry category, and Arnold grouping (along with the Procedural and Alembic objects):
  • In the Volume object, you can choose between a single VDB file or an animated sequence of VDB files. When selected, you can choose the Parameter and Velocity grids in the VDB file, and make them available to the shaders: 
  • Once you press Ok, the Volume object will change size to the selected VDB, and the optional Standard Volume shader will be applied. Drag it to the Slate editor to modify its parameters. 

A tutorial on how to write volumes to OpenVDB from Houdini can be found here.

Volumes can only receive indirect lighting from other emissive volumes when the Volume Ray Depth is above 0.

Arnold Volume (VDB).

Custom AOVs are not currently supported with volumes.

To reduce the amount of noise in a volume, you must ensure that the lights in your scene have enough 'volume samples'.

Parameters

VDB File Path

The location of the volume VDB file. 

Volume Shader

Volume shader that is assigned to the volume. Typically this is a Standard Volume shader.

Grids

A space-separated list of OpenVDB grids to read and make available as channels in the volume shading context. Examples of Grid names are density, fuel, heat, temperature or velocity.

Velocity Grids

Either one vector grid (e.g., v or vel) or three float grids (e.g., vel.x, vel.y, vel.z) representing the velocity field, to be used for motion blur. No motion blur will occur if an invalid combination of grids or if no grids are specified. Note that all velocity grids declared here are also available as channels in the shading context.

A Volume VDB (with velocity grids) can be downloaded here.

Ray Marching Step Size

Sets the size for sampling inside the volume. It should be small enough to capture the smallest feature in the volume (aka the Nyquist limit). If the size is too large, aliasing, bias or banding will appear. Smaller (and therefore more accurate) sizes will increase render times while larger sizes will render more quickly. 

Auto

Choose a step size relative to the voxel size.

Manual

Choose a step size (where an actual step size is given).

More information about volume Step Size can be found here.

Bounding Box

Padding

Enlarge the volume by Padding. This is useful when displacing a volume with a noise for example. Note that this slack applies not only to the bounding box but also to the voxels used for ray extents inside the bounding box. When velocity motion blur is enabled, some extra padding is computed, based on the maximum value of the velocity field, and the maximum of the velocity padding and user padding is applied. When padding exceeds the bounding box maximum dimension, the ray extents acceleration makes little sense and is disabled, so you should set the padding as tightly as possible.

 

For best performance, this should be set as low as possible, while still covering the maximum the displacement amount.

The amount of padding to add to the volume bounds for displacement

Motion Blur

Velocity Scale

A scale factor for the velocity field. A value of 0 disables motion blur.

Outlier Threshold

Controls filtering of noisy velocities resulting in the faster rendering of motion blur from physics simulations. The default value 0.001 should have little to no visual impact. Setting it to zero disables filtering entirely. 

Animation Support

On Frames

Renders a specific frame from a sequence of VDB volume files.

Replay Speed

Choose the animation playback speed.

Frame Offset

Offsets the frame when rendering a sequence using # pattern in the filename.

Ping-Pong Replay

Plays the animation back and forth.

VDB Workflow

  • Create the Volume by going to Arnold in the Create Tab and select Volume. Click and drag in the viewport to create the volume.

  • Choose which VDB file to use from VDB File Path.
  • Once you have opened your VDB file, you will be presented with a choice of which VDB Grid to use that the VDB volume was originally saved with.
  • By default, MAXtoA will assign a Standard Volume shader to the volume. Disable this option if you wish to use a different Standard Volume shader.

Select from the VDB Grids that the volume has been saved with. A default Standard Volume shader will be assigned to it.

If you need to further edit the result of the reading of a channel, for instance, to color correct it, there are the Volume Sample RGB and Volume Sample Float shaders.

 

Reducing Noise

To reduce the amount of noise in a volume, you must ensure that any lights in your scene have sufficient  volume samples, or that you have enough AA samples.

 

Volumes and Atmosphere Volume

Currently, Atmosphere Volume does not compose well against volumes. This is because atmosphere's return a single flat result that is opacity mapped on top of whatever is in the background of the pixel.

Left: floor plane geometry hidden. Right: floor plane geometry visible. Fluid renders incorrectly. Click images above to view animation.

 

 

Further examples

Smoke volume by Mads Droschler

  

  • No labels