Arnold OpenVDB Volume

OpenVDB bunny cloud volume available here.

 

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.

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.

Custom AOVs are not currently supported with volumes.

OpenVDB

The default volume plugin is OpenVDB. In addition to the ray extents acceleration, auto bounding box and auto step size of the new volume API, it brings several production features such as velocity motion blur, scaling of velocity and step size and the ability to disable ray extents acceleration.

Grids

The grids to read from the OpenVDB data and provide as volume channels to shaders. You should specify at least one grid to read in. Note that KtoA will attempt to retrieve the bounding box of the volumetric data and display it in the viewer.

Auto Step Size

Auto step size, when turned on, will ignore the step size that is manually set. Instead, you can modify the step size from its natural value with step scale instead. When turned off, you can manually set the step size.

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. 

Step size basically controls the rate at which the volume shader gets called. The value indicates the average distance between adjacent volume shader samples along a given ray, in world space units. Generally, you will want this setting to be as large as possible before visibly noticeable artifacts occur, and in the case of voxelized volumes no smaller than about half the size of your voxels (in world space). Low Step Sizes will increase render times. For example, when the step size is 0.1 and the volume is 10 units big in world space, there are approximately 100 primary samples and therefore the volume shader is called 100 times.

The step size has a fixed size, therefore, the larger the container the more steps will be taken and the longer it will take to render. Also, beware that if the step size is too small your render times will increase. If you cannot see the rendered Fluid, you may need to reduce the Step Size value.

More information about volume Step Size can be found here.

Step Scale

A scaling factor applied to the step size, mostly useful when the Volume Step is set to Automatic, to modulate the automatic value. For low frequency, smoke-like volumes, a value of 4 is a reasonable starting point.

Bounds Slack

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 displacement amount.

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

Compress

Compress grids to reduce memory usage, enabled by default. This is a lossy compression, however, in most cases renders will be almost the same. If there is a problem, however, this parameter can be used to disable lossy compression.

Velocity Grids

Either 1 vector grid (eg. v or vel) or 3 float grids (eg. vel.xvel.yvel.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.

Velocity Scale

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

Velocity FPS

Sets the frames per second velocity value.

Motion Start

Specifies the shutter open value at the current frame.

Motion End

Specifies the shutter close value at the current frame.

Transform 

Set the transform (which can be interactively modified in the viewer with manipulators) for the volume.

 

 

  • No labels