This page may include unlocalized contents


Standard Volume


Cloud rendered with Redshift - Asset Courtesy of Walt Disney Animation
CC BY-SA 3.0
License


The Standard Volume shader is a physically based shader designed to render heterogeneous volumes like clouds, smoke, fire, and explosions. It combines an easy to use interface and controls while enabling greater flexibility and artistic control with the introduction of programmable volume shading. The Standard Volume shader accepts external shader inputs allowing for the creation and control of procedural volumes or the modification and displacement of existing volume grids.

The shading components of a volume shader are mainly driven by grids of voxel data contained inside a volume object, like an OpenVDB file. Volume grids may also be referred to as channels, particularly in a shading context, and Redshift uses the channel terminology when referencing a VDB grid in a volume shader.

For more information on OpenVDB files, example VDBs, and loading them into your scene please see the Volume Object page.

OSL does not currently work with volume shading.


Speed and Simplicity

If speed is what you need, the Standard Volume shader supports a special mode when no external nodes are attached making it faster and more optimized. This can be achieved simply by using the built-in Volume Channel and Emission Channel fields to import your volume grids. In this mode, it behaves very similarly to the classic Volume Shader but with more intuitive controls.


Displacement

The Standard Volume supports displacement by using the Position Offset parameter in a Volume Scalar Attribute or Volume Color Attribute node, this allows you to move existing voxels in a grid around the scene.

Volume displacement is always limited by a volume's bounding box. Volume Padding, an option found on a Redshift Volume Object, can be used to expand the volume bounding box allowing for greater volume displacement.

Increasing Volume Padding

Volume grids loaded into the built in Density and Emission Channel fields can mask out displaced scattering or emission voxels. It is generally recommended to leave these fields blank if you intend to displace your volume with external inputs because any empty voxel has a value of 0 and the built in channels are multiplied with the rest of the shader. Multiplying any displaced voxel with a value of 0 will return a value of 0 and therefore you will not be able to see those displaced voxels, making it appear like displacement is not working.


A basic example node graph depicting displacement and programmable volume shading is pictured below. It uses:



Volumetric Multiple Scattering

The look and shape of a volume is heavily dependent on how it interacts with light. When a light photon enters a cloud it makes contact with the different molecules that make up its composition and then scatter around inside the medium. Clouds are mostly made up of water and ice molecules which results in a lot of scattered light, thick cumulus clouds can even reflect up to 90% of incoming light.

Volumetric multiple scattering simulates this phenomenon to create much more realistic volume renders. In Redshift, this is controlled by the Volume Trace Depth parameter which is found in the Render Settings. Increasing the volume trace depth allows a light ray to scatter and bounce around more often inside a volume, this leads to brighter and more realistic volume renders at the expense of longer render times. The impact multiple scattering has on the look of a volume depends on the shader parameters.

Volume multiple scattering is only compatible with Brute Force global illumination. If point based global illumination methods (Irradiance Cache or Irradiance Point Cloud) are used for the primary or secondary GI engine, ray traced global illumination (Brute Force) is automatically used for all volumes in the scene — the remaining objects will use the point based GI methods.


In the example images below, you can see how increasing the volume depth significantly changes the look of a cloud. Clouds have a heavily forward scattering (positive anisotropy) nature which results in more light being driven deeper into the volume rather than reflecting back out, because of this, each successive volume bounce carries more light energy than a volume that is more isotropic which scatters light more evenly in all directions.

Volume Trace Depth: 1 3 11 31
Asset Courtesy of Walt Disney Animation
CC BY-SA 3.0
License


Smoke, by comparison, tends to scatter far fewer times as it is more isotropic (anisotropy closer to 0) and therefore sees diminishing returns as volume trace depth is increased. The difference between a trace depth of 11 and 31 is minimal with the demo example compared to the cloud images above.

Volume Trace Depth: 1 11 31


Multiscattering Demo Scene

An updated demo scene created by Saul Espinosa that uses the Disney cloud VDB and the Standard Volume shader is provided below as a starting point for better understanding the effects of multiple scattering and other volume shader parameters.

Redshift Cloud Multiscatter Demo.zip (65 MB)


Download Contents:

Cloud VDB must be downloaded separately at Walt Disney Animation - Data Sets and the "wdas_cloud_half.vdb" should be placed in the same folder as the downloaded scene files.

The Redshift demo volume VDB (242 MB) can also be added to this scene and used.