Volume Materials

Volumetric Properties

Absorption

The absorption coefficient controls how much light is absorbed by the medium over a given distance.

The range of valid values is from zero, representing no absorption, to infinity for fully absorbing. In practice the maximum value that should be used is 1/(voxel size), which specifies that a single voxel will absorb the majority of the light. The units of the absorption coefficient are 1/m.

Absorption affects the transparency of the volume, and also the darkness of its shadow as a high absorption will prevent light from passing through the volume to the ground.

_images/volume_properties_absorption1.png

Low absorption. More transparent, lighter shadow.

_images/volume_properties_absorption2.png

High absorption. Less transparent, darker shadow.

Absorption can be given a color to control how much of each color component is absorbed. Note that the volume will have the appearance of the complementary color, as the absorption color specifies what color is removed.

_images/volume_properties_absorption3.png

Volume with cyan colored absorption. Green and blue light is absorbed more than red light, which causes the objects behind the volume to appear red. Note the shadow is also red as the lower red absorption allows more red light to reach the ground.

Note

When a volume is rendered on its own, the single alpha channel in the result image cannot represent colored transparency. To get a colored transparency for compositing, the ‘opacity’ AOV can be used.

Scattering

The scattering coefficient controls how much light is scattered by the medium over a given distance.

It’s important to realize that scattering impacts the rendered volume in two different ways. The first, most intuitive impact it has, is that it affects how much light is scattered out of the volume towards the camera and the other objects in the scene. The second, more subtle effect, is that light which is scattered out of the volume does not reach deeper into the volume. In this way the scattering acts very similar to absorption.

Higher scattering therefore makes the volume less transparent, and the shadow darker, just as absorption does. Also higher scattering means that light will be scattered sooner, penetrating less deeply into the volume. Higher scattering does not necessarily mean the volume will be brighter - sometimes it can have the opposite effect, causing deeper parts of the volume to receive less light and appear darker, as all the light was scattered earlier. Without absorption, all the light must go somewhere, either passing through the volume or being scattered by it.

Hint

Think of the scattering coefficient as controlling where the light is scattered, rather than how much is scattered.

_images/volume_properties_scattering1.png

Low scattering. Lighter shadow, light penetrates deeper into volume. More transparent.

_images/volume_properties_scattering2.png

High scattering. Darker shadow, light penetrates less deeply into the volume before scattering. Less transparent.

Similarly to absorption, the range of valid values for scattering is from zero, representing no scattering, to infinity for fully scattering. In practice the maximum value that should be used is 1/(voxel size), which specifies that a single voxel will scatter the majority of the light. The units of the scattering coefficient are 1/m.

Scattering can also be given a color to control how much of each color component is scattered. When light is scattered quickly before it penetrates deeper, it will have the scattering color. However deeper in the volume, the scattering color will be removed as it has already been scattered, so we will see scattering of the complementary color instead.

_images/volume_properties_scattering3.png

Volume with cyan colored scattering. Light scattered on the side of the volume facing the light has the cyan scattering color. Deeper in the volume, all the green and blue light has been absorbed, leaving only the red light to be scattered.

Controlling the appearance of a volume comes down to balancing the effects of scattering and absorption together. Light that is absorbed is no longer available to be scattered, so both the relative ratio of absorption and scattering, as well as their total values, affect the appearance of the volume.

_images/volume_properties_scattering4.png

Combining scattering with absorption.

Albedo and extinction

Balancing the absorption and scattering coefficients can be tricky in practice, as increasing one can require reducing the other to keep the same transparency and apparent density. Similarly adjusting the overall transparency requires changing both scattering and absorption together, maintaining the same ratio between them.

Because of these difficulties, Eddy makes two alternative parameters available - scattering albedo and extinction. All Eddy volume materials come in two versions, one that provides scattering and absorption coefficients, and one that provides the albedo and extinction instead.

The extinction coefficient is just the sum of the absorption and scattering coefficients. Increasing the extinction makes the volume less transparent and appear thicker, and reducing the extinction will make the volume more transparent and appear more thin. Changing the extinction will not affect the ratio between absorption and scattering.

_images/volume_properties_extinction1.png

Low extinction. Lighter shadow, more transparent, volume appears more thin.

_images/volume_properties_extinction2.png

High extinction. Darker shadow, less transparent, volume appears more thick.

The scattering albedo is a value between 0 and 1 which controls the ratio of scattering to absorption. Values close to 1 use more scattering than absorption, and values close to 0 use more absorption than scattering. Changing the scattering albedo will not affect the transparency of the volume, or the darkness of its shadow, and so is much easier to use than changing the absorption and scattering directly.

_images/volume_properties_albedo2.png

Low scattering albedo. Volume is darker, as there is more absorption than scattering.

_images/volume_properties_albedo1.png

High scattering albedo. Volume is brighter, as there is more scattering than absorption. Note that the shadow and transparency of the volume does not change when the albedo is changed.

Similar to absorption and scattering, the range of valid values for extinction is from zero, representing no attenuation, to infinity for fully attenuating. In practice the maximum value that should be used is 1/(voxel size), which specifies that a single voxel will attenuate the majority of the light. The units of the extinction coefficient are 1/m.

Phase functions

The phase function describes non-uniform scattering, where scattering is more likely in some directions than others. Forward scattering is when the light is more likely to be scattered into its continuing forward direction, backward scattering is when the light is more likely to be scattered backwards along its original direction.

The most commonly used phase function for volumetric media is the Henyey-Greenstein phase function. It is characterized by a single parameter g, which ranges from -1 to 1. When g is 0 we have uniform scattering, for g > 0 we have forward scattering, and g < 0 is backward scattering.

_images/volume_properties_phase1.png

Forward scattering, g = 0.5

_images/volume_properties_phase2.png

Backward scattering, g = -0.5

Because the phase function depends on both the camera view direction and the light direction, it can be hard to see in static images. The following animation shows the effect of the phase function as the camera direction changes.

_images/volume_properties_phase_anim.gif

Forward scattering on the left, backward scattering on the right. Note the difference when the light is behind or in front of the volume.

Note

Using large values for g can increase noise in some situations. A value of 0.7 is already very highly directional, using larger values is generally not recommended. Remember that the effect of the phase function depends on the view direction too, at some viewing angles changing the phase function may not appear to have much effect.

Emission

Emission describes materials that emit light from the volume itself, rather than just scattering light from other light sources. Usually emission is not specified directly, but controlled by other properties. For example, a fire material emits light based on the temperature of the fire.

The units of emission are radiance/m and the range is zero to infinity.

Standard Volume Materials

Smoke - Albedo

This material describes a volume using scattering albedo and extinction parameters, with a single phase function. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘emission’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

emission

EddyChannel (Vector)

0-1

The optional emission channel is used to directly set the emission of the volume.

Controls

Parameter

Values

Description

Scattering albedo

0…1

The scattering albedo of the material. Controls the ratio between absorption and scattering.

Extinction coefficient

0…inf

Controls how much light is absorbed and scattered by the material.

Scattering color

Color

The color of scattered light.

Extinction color

Color

The color of light extinguished through absorbtion and scattering.

Phase function parameter

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Smoke - Albedo - Dual scattering

This material describes a volume using scattering albedo and extinction parameters, with two separate scattering phase functions. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘emission’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

emission

EddyChannel (Vector)

0-1

The optional emission channel is used to directly set the emission of the volume.

Controls

Parameter

Values

Description

Extinction coefficient

0…inf

Controls how much light is absorbed and scattered by the material.

Extinction color

Color

The color of light extinguished through absorbtion and scattering.

Scattering albedo 1

0…1

The scattering albedo of the first scattering component of the material. Controls the ratio between absorption and scattering.

Scattering color 1

Color

The color of scattered light from the first scattering component.

Phase function parameter 1

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the first scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Scattering albedo 2

0…1

The scattering albedo of the second scattering component of the material. Controls the ratio between absorption and scattering.

Scattering color 2

Color

The color of scattered light from the second scattering component.

Phase function parameter 2

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the second scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Smoke - Scattering/Absorption

This material describes a volume by specifying the scattering and absorption parameters, with a single phase function. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘emission’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

emission

EddyChannel (Vector)

0-1

The optional emission channel is used to directly set the emission of the volume.

Controls

Parameter

Values

Description

Absorption coefficient

0…inf

Specifies how much light is absorbed as it passes through the material.

Absorption color

Color

Specifies the color of the absorbed light.

Scattering coefficient

0…inf

Specifies how much light is scattered as it passes through the material.

Scattering color

Color

Specifies the color of the scattered light,

Phase function parameter

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Smoke - Scattering/Absorption - Dual scattering

This material describes a volume by specifying the scattering and absorption parameters, with two separate scattering phase functions. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘emission’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

emission

EddyChannel (Vector)

0-1

The optional emission channel is used to directly set the emission of the volume.

Controls

Parameter

Values

Description

Absorption coefficient

0…inf

Specifies how much light is absorbed as it passes through the material.

Absorption color

Color

Specifies the color of the absorbed light.

Scattering coefficient 1

0…inf

Specifies how much light is scattered by the first scattering component as it passes through the material.

Scattering color 1

Color

Specifies the scattering color of the first scattering component.

Phase function parameter 1

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the first scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Scattering coefficient 2

0…inf

Specifies how much light is scattered by the second scattering component as it passes through the material.

Scattering color 2

Color

Specifies the scattering color of the second scattering component.

Phase function parameter 2

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the second scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Fire - Albedo

This material describes a volume using scattering albedo and extinction parameters, with a single phase function, with black-body emission controlled by a temperature channel. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘temperature’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

temperature

EddyChannel (Scalar)

0-1

The temperature channel controls the emission of the volume, using a black-body spectrum. The temperature channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

Controls

Parameter

ValueType

Description

Scattering albedo

0…1

The scattering albedo of the material. Controls the ratio between absorption and scattering.

Extinction coefficient

0…inf

Controls how much light is absorbed and scattered by the material.

Scattering color

Color

The color of scattered light.

Extinction color

Color

The color of light extinguished through absorbtion and scattering.

Phase function parameter

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Emission Controls

These parameters control the emission of the volume. They are the same for all fire materials.

Parameter

ValueType

Description

Emission coefficient

0…inf

Linear multiplier for the emission luminance calculated by the black-body spectrum.

Emission exposure

0…inf

Exponential multiplier for the emission luminance calculated by the black-body spectrum. Multiplies the emission by 2^n.

Temperature coefficient

0…inf

Multiplier for the temperature channel, applied before using the temperature to look up color from the black-body spectrum.

White balance

0…inf

Sets the white balance temperature of the black-body spectrum.

Color Space

List

Selects the color space used by the black-body spectrum.

Min Temperature

0…inf

Specifies the lower temperature limit used when calculating the black body-spectrum.

Max Temperature

0…inf

Specifies the temperature limit used when calculating the black body-spectrum.

Fire - Albedo - Dual scattering

This material describes a volume using scattering albedo and extinction parameters, with two separate scatteringphase functions, with black-body emission controlled by a temperature channel. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘temperature’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

temperature

EddyChannel (Scalar)

0-1

The temperature channel controls the emission of the volume, using a black-body spectrum. The temperature channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

Controls

Parameter

ValueType

Description

Extinction coefficient

0…inf

Controls how much light is absorbed and scattered by the material.

Extinction color

Color

The color of light extinguished through absorbtion and scattering.

Scattering albedo 1

0…1

The scattering albedo of the first scattering component of the material. Controls the ratio between absorption and scattering.

Scattering color 1

Color

The color of scattered light from the first scattering component.

Phase function parameter 1

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the first scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Scattering albedo 2

0…1

The scattering albedo of the second scattering component of the material. Controls the ratio between absorption and scattering.

Scattering color 2

Color

The color of scattered light from the second scattering component.

Phase function parameter 2

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the second scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Emission Controls

See emission controls for a description of the emission controls.

Fire - Scattering/Absorption

This material describes a volume by specifying the scattering and absorption parameters, with a single phase function, with black-body emission controlled by a temperature channel. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘temperature’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

temperature

EddyChannel (Scalar)

0-1

The temperature channel controls the emission of the volume, using a black-body spectrum. The temperature channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

Controls

Parameter

Values

Description

Absorption coefficient

0…inf

Specifies how much light is absorbed as it passes through the material.

Absorption color

Color

Specifies the color of the absorbed light.

Scattering coefficient

0…inf

Specifies how much light is scattered as it passes through the material.

Scattering color

Color

Specifies the color of the scattered light,

Phase function parameter

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Emission Controls

See emission controls for a description of the emission controls.

Fire - Scattering/Absorption - Dual scattering

This material describes a volume by specifying the scattering and absorption parameters, with two separate phase functions, with black-body emission controlled by a temperature channel. See Volumetric Properties for descriptions of volume scattering properties.

Usage

Use in the RenderableVolumeRefLabel node or the ShaderRefLabel node.

Inputs/Outputs

Connections

ClassType

Number

Description

channel_set

EddyChannelSet

0-1

Optional channel set which can provide the ‘density’, ‘velocity’, and ‘temperature’ channels, instead of connecting them individually. If an individual channel is also connected it will override any channel found in the channel set.

density

EddyChannel (Scalar)

0-1

The density channel is used to scale the absorption and scattering coefficients. The density channel must be specified, either here or in the channel set.

temperature

EddyChannel (Scalar)

0-1

The temperature channel controls the emission of the volume, using a black-body spectrum. The temperature channel must be specified, either here or in the channel set.

velocity

EddyChannel (Vector)

0-1

The optional velocity channel is used when calculating motion blur.

Controls

Parameter

Values

Description

Absorption coefficient

0…inf

Specifies how much light is absorbed as it passes through the material.

Absorption color

Color

Specifies the color of the absorbed light.

Scattering coefficient 1

0…inf

Specifies how much light is scattered by the first scattering component as it passes through the material.

Scattering color 1

Color

Specifies the scattering color of the first scattering component.

Phase function parameter 1

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the first scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Scattering coefficient 2

0…inf

Specifies how much light is scattered by the second scattering component as it passes through the material.

Scattering color 2

Color

Specifies the scattering color of the second scattering component.

Phase function parameter 2

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function for the second scattering component. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.

Emission Controls

See emission controls for a description of the emission controls.

Generic

A simple generic volume material, mainly intended for use by shader networks. Absorption, scattering, and emission coefficients are specified directly as parameters on the material. For example, if you want these parameters to be controlled by a density channel, then they must be exposed as plugs and connected to an appropriate shader network.

Controls

Parameter

Values

Description

Absorption

0…inf

Specifies how much light is absorbed as it passes through the material.

Scattering

0…inf

Specifies how much light is scattered as it passes through the material.

Emission

0…inf

Specifies how much light is emitted by the material.

Phase function parameter

-1.0 … 1.0

The parameter g for the Henyey-Greenstein phase function. g = 0 is isotropic, g < 0 is backward scattering, g > 0 is forward scattering.