Houdini 20.5 Nodes VOP nodes

Pyro Shader VOP node

Flexible, production-quality smoke, fire, and explosions shader.

On this page
Since 18.5

Overview

This shader can be used to create realistic renders of smoke, fire, and explosions simulations or procedurally generated volumes.

Smoke and Emission

The combination of these two components make up the final volume render. Some renders such as chimney smoke, dust clouds, and other generic smoke elements only need to be shaded as smoke. Smoke is mainly controlled by its density and color. Emission on the other hand, controls the overall intensity and color of light emitted by the fire.

Each of these components relies on a set of volumes to do its work. A density volume is usually bound to the smoke component, and parameters in the Smoke tab control its resulting look. You can use up to 3 emissive elements with this shader: scatter, fire and secondary fire.

Scatter uses a scatter volume produced by the Pyro Bake Volume SOP, which can have the effect of internal scattering pre-baked. Although this scattering is an approximation to true behavior, this approach is much cheaper to render compared to using volume lights and a high number of volume bounces. It also gives you greater artistic control over the look.

Fire and secondary fire provide a more traditional set of controls that mirrors Pyro Shader - Classic. In particular, each of these emissive elements needs an intensity and a color field, governing the amount and color of the emitted light, respectively. Similar to scatter, fire can also be masked by another volume.

Tip

All range settings should consider the range of values in their respective bound volumes. The Pyro Solver will write the minimum and maximum values for each exported volumes into primitive attributes when Compute Min/Max Values is enabled on the Export tab.

Emission Masking

The Pyro Shader has the ability to mask scatter and fire by another field. By default, the mask field is set to density, and its effect is to reduce emission in areas with higher density. Masking is especially useful when rendering explosions, since it can introduce crunchy details to the soot. When used correctly, the volume will appear to glow internally, with this glow peeking through cracks in the smoke.

The following image shows the smoke, scatter, scatter mask, and the final combined image.

Scatter, Fire, and Secondary Fire

The three possible emissive components are combined together for the final render, but they all serve different purposes.

  • Scatter is mainly used to emulate light scattering inside an explosion and it relies on a special scatter volume that can be generated by Pyro Bake Volume.

    Smoke and scatter versus just smoke:

  • Fire can be used for shading fire and flames. By default, it uses temperature volumes for both emission intensity and color. Masking can also be applied to this component.

    Smoke and fire versus just smoke:

  • Secondary fire is mainly used for adding fiery tips for trails generated by Pyro Trail Source. This component cannot be masked, but is otherwise conceptually the same as fire.

    Smoke and secondary fire versus smoke:

Working with the Pyro Shader

To...Do this

Change the color of the smoke based on density

  1. Change the menu next to Smoke Color from Constant to Use Ramp.

  2. Set the Density Range parameter to control the color of the smoke at given density values.

  3. Set the Smoke Color Ramp to change the color of the smoke based on Density Range.

Change the color of the smoke based on how light scatters through the volume

Change the Absorption Color. The value of 0.425 (red),0.36(green), 0.3(blue) could be a good starting point for more realistic looking smoke.

Scale smoke density using an other volume

  1. Turn on the Use Control Volume checkbox.

  2. Set Density Control Volume on the Bindings tabs to the field that you want to use to affect the density. Usually temperature or flame are good choices for this purpose.

Parameters

Smoke

Smoke

Enable Smoke

Enables the smoke aspect of the volume. Smoke absorbs and attenuates light traveling through it. Use Smoke Volume to identify the volume storing the smoke’s density.

Density Scale

Controls the overall density of the smoke. Increasing this value will give the smoke a thicker appearance. Reducing it will make the smoke less opaque.

Density Range

Specifies the horizontal extent of the Density Ramp, which is evaluated to get the transformed smoke density.

This parameter is available when the menu next to Density Scale is set to Use Ramp.

Density Ramp

Controls how the smoke’s density values are remapped. The horizontal axis of this ramp spans Density Range.

This parameter is available when the menu next to Density Scale is set to Use Ramp.

Use Control Volume

When turned on, smoke densities are affected by the Density Control Volume. In particular, the control volume’s value is mapped from Control Range to Density Scale, which is then multiplied by smoke’s density.

With the default settings, the densities are unchanged where temperature volume is 0. As the temperature values rise towards 1, the densities will be increased. If the temperature value equals or exceeds 1, the smoke will be twice as dense. This is useful to bring out more details when using emission masking.

Control Range

Density Control Volume values are remapped from this range to Density Scale before the result is multiplied by density values. Set the menu on the right to Use Ramp if you want to control the mapping. When this menu is set to Constant, mapping is linear.

Density Scale

Controls the range of multipliers that can be applied to density by the control volume.

Control Ramp

Determines how the control volume values are mapped to density scales. The horizontal and vertical axes of this ramp span Control Range and Density Scale, respectively.

This parameter is available when the menu next to Control Range is set to Use Ramp.

Smoke Brightness

Controls the overall smoke brightness. This value acts as a multiplier on top of the smoke color. Increase this value to get brighter smoke.

Smoke Color

Controls the overall color of the smoke. To get more natural looking smoke, change the menu on the right side of this parameter from Constant to Use Ramp. This will allow you to vary the smoke’s color with its density.

Density Range

The minimum and maximum density values to map to the left and right endpoints of the Smoke Color Ramp.

Smoke Color Ramp

This ramp controls how the smoke’s density values are mapped to its color. The horizontal axis of the Smoke Color Ramp spans the Density Range. For example, you can use this ramp to make the smoke have a darker color where it is more dense.

Absorption Color

The color that is absorbed as light travels through the volume.

Shadow Color

The color of shadows cast by the volume. Change the menu on the right side of this parameter from Constant to Use Ramp to change the color of the shadow based on smoke density.

Shadow Density

This multiplier applies on top of Density Scale when the volumes are lit. Increasing this value will result in less light penetrating the volume, without affecting the smoke’s opacity to the viewer. Decreasing this value reduces the light’s absorption, without changing how opaque the smoke appears.

Density Range

The minimum and maximum density values to map to the left and right endpoints of the Shadow Color Ramp.

Shadow Color Ramp

Controls how the smoke’s density values are mapped to its shadow color. The horizontal axis of this ramp spans the Density Range.

Color with Cd Volume

When turned on, the smoke color set by the Smoke Color parameter is multiplied by Cd color volume if it exists to obtain the final smoke color.

Use Alpha for Color Blending

When turned on, the Alpha volume is used to blend between the Smoke Color and the Cd volume instead. Where alpha has the value of 1, it will use the color from the Cd volume and where Alpha is 0, it will use the color set by Smoke Color. When this checkbox is turned off, the smoke color is the product of these two values instead.

Scattering Phase

Scattering Phase

Controls the direction in which light entering the volume is scattered. At the default of 0, light scatters evenly in all directions (isotropic scattering). Positive values up to 1 scatter more and more in the same direction as the incoming light, negative values down to -1 scatter backwards.

Use the menu on the right side of this parameter to change the phase based on a control volume (as bound by Phase Control Volume).

Control Range

Along with Scattering Phase, this parameter controls the mapping of Phase Control Volume to the effective scattering phase. The first value of this range is mapped to the first value of Scattering Phase, and likewise for the second value.

Scattering Phase

Along with Control Range, this parameter controls the mapping of Phase Control Volume to the effective scattering phase. The first value of Control Range is mapped to the first value of this parameter, and likewise for the second value.

Scatter

Scatter

Enable Scatter

Enables the scattered emission aspect of the volume. Use this for shading explosions. This will generate the Scatter Volume, which is also used for rendering. Use Source Volume to identify the volume that controls this emission.

Explosion viewed with and without scatter enabled (Enable Mask is turned off).

Intensity Scale

Sets the emission intensity for the scatter. Increase this value to make the scatter brighter.

Hot Core Scale

Scales the emission intensity for the scatter where the luminance of the scatter is bright. As the explosion fades off over time, you will see the effect of this parameter less and less even with very large values because over time the luminance of the scatter value is getting less and less. It is good to boost your explosion brightness at the beginning of the explosion. Increasing the value of Hot Core Scale brightens the explosions fissures.

Tint with Smoke Color

Multiplies the emission color of the scatter with the smoke color (as set by Smoke Color). This allows for the color of the scatter to blend better with the smoke.

Tint Strength

Sets how strong the scatter emission color needs to mix with smoke color (as set by Smoke Color).

Enable Color Correction

The color of the scatter volume is calculated using Pyro Bake Volume, which means it is already baked in. By turning this on, you can do some color correction operations on the scatter volume.

Gamma

Shifts the overall gamma of the input color. 1 is no change. Values less than 1 will decrease color values, and values greater than 1 will increase them.

Gain

Increases or decreases the gain for any of the RGB channels of the input color.

Masking

Enable Mask

Masks the emission based on the Mask Volume using a threshold range. Mask Center and Mask Width control the masking range. By default, where the mask volume is at the minimum and maximum of this range, the additional emission multiplier is 1 and 0, respectively. Emission is reduced in areas where the mask value is larger. Masking is useful for bringing out crunchy details for an explosion.

Scatter with and without masking.

Mask Center

In conjunction with Mask Width, this parameter controls the range of values used for masking emission. The effective range of mask values is from Mask Center - Mask Width * 0.5 to Mask Center + Mask Width * 0.5. When set to a lower value, more of the emission will be masked and the explosion will glow less brightly. When set to a higher value, the volume will appear to glow internally, with this glow peeking through cracks in the smoke.

The video shows the effect of increasing this parameter while keeping Mask Width fixed.

Mask Width

Controls the range of values used for masking emission, in conjunction with Mask Center. The effective range of mask values is from Mask Center - Mask Width * 0.5 to Mask Center + Mask Width * 0.5.

Falloff Attenuation

Use Mask Ramp

Use a ramp to set how the emission changes between the minimum and maximum mask threshold (as set by Mask Center and Mask Width).

Masking Ramp

Sets how the emission changes between the minimum and maximum mask values (as set by Mask Center and Mask Width). White means full emission and black means no emission.

Note

The default white to black ramp will produce the exact same results as having Use Mask Ramp turned off.

When the ramp is set white to black from left to right:

When the ramp is set black to white from left to right:

Tip

Increase the default black value a very small amount on the red and green channels to give a bit of red/orange-ish coloring to the emission.

Fire

Fire

Enable Fire

Enables a secondary emission component. Fire is mainly used for fire and flame type simulations.

Fire simulation viewed with and without fire enabled (Enable Mask is turned off).

Intensity Scale

Sets the emission intensity for the fire. Increase this value to make the fire brighter. Set the menu on the right side of this parameter to Use Ramp to remap the intensity.

Source Range

The minimum and maximum source values to map to the left and right endpoints of the Fire Intensity Ramp. Increase the minimum source value to reduce the emissive parts of the volume.

By increasing the minimum value from zero, the area of the fire will shrink (Enable Mask is turned off).

Fire Intensity Ramp

Controls how the raw Intensity Volume values are mapped to effective intensity. The horizontal axis of this ramp spans Source Range.

Color Mode

Sets how the color is calculated for the fire. Color Ramp will map the colors using Fire Color Ramp from the given Source Range. Choose Physical Blackbody or Planck Backbody to compute color based on the temperature of an incandescent blackbody.

Note

Planck Blackbody incorporates emission power into the calculated color. The power scales rapidly at high temperatures, so you might need to reduce emission intensity to compensate. To use the pure physical blackbody color, set emission intensity to constant 1.

Source Range

The minimum and maximum source values to map to the left and right endpoints of the Fire Color Ramp.

Fire Color Ramp

Controls how the Color Volume values are mapped to emission color. The horizontal axis of this ramp spans Source Range.

Temperature Scale

Scale applied to the Color Volume values before they are mapped to blackbody color.

Temperature at 0 (K)

The temperature corresponding to an input value of 0.0. This value is in Kelvin.

Temperature at 1 (K)

The temperature corresponding to an input value of 1.0. This value is in Kelvin.

Enable Tone Mapping

When turned on, the computed Physical Blackbody curves are remapped using Adaptation and Burn.

Adaptation

Squashes or stretches the low end of the generated intensity, similar to exposing a photograph for shadows.

Burn

Manipulates the high end of the generated intensity.

Masking

Enable Mask

Masks the emission based on the Mask Volume using a threshold range. Mask Center and Mask Width control the masking range. By default, where the mask volume is at the minimum and maximum of this range, the additional emission multiplier is 1 and 0, respectively. Emission is reduced in areas where mask value is larger. Masking is useful for bringing out crunchy details for an explosion.

Fire with and without masking.

Mask Center

Controls the range of values used for masking emission, in conjunction with Mask Width. The effective range of mask values is from Mask Center - Mask Width * 0.5 to Mask Center + Mask Width * 0.5. When this value is lower, more of the emission will be masked and the fire will glow less brightly.

Mask Width

Controls the range of values used for masking emission, in conjunction with Mask Center. The effective range of mask values is from Mask Center - Mask Width * 0.5 to Mask Center + Mask Width * 0.5.

Falloff Attenuation

Use Mask Ramp

Use a ramp to set how the emission changes between the minimum and maximum mask threshold (as set by Mask Center and Mask Width).

Fire Ramp

Sets how the emission changes between the minimum and maximum mask values (as set by Mask Center and Mask Width). White means full emission and black means no emission.

Note

The default white to black ramp will produce the exact same results as having Use Mask Ramp turned off.

Secondary Fire

Fire

Enable Second Fire

Enables a tertiary emission component. Second fire is useful for setting up glowing trails for explosions.

This component is conceptually very similar to primary fire. The only difference is that secondary fire does not support masking. As such, this tab is identical to Fire, aside from absence of the Masking section.

Explosion viewed with and without second fire enabled for the trails.

Bindings

Smoke

Smoke Volume

The name of the volume to be used as smoke. Usually you should leave this as density.

Density Control Volume

The control volume used to modify smoke density values. This volume is used if Use Control Volume is turned on. Use tempearture or flame.

Phase Control Volume

When Scattering Phase is set to Use Ramp, values in this volume are used to determine the spatially-varying scattering phase.

Scatter

Scatter Volume

The scatter emission color field. You can use the Pyro Bake Volume SOP to generate this volume.

Mask Volume

Selects the volume that’s used for masking emission for the scatter component. Setting this to Smoke will use Smoke Volume for masking. Otherwise, the mask volume is specified in Custom Volume.

Custom Volume

When Mask Volume is set to Custom Volume, this volume will be used for masking the scatter emission.

Fire

Intensity Volume

The name of the volume to be used for the intensity of the fire emission.

Color Volume

The name of the volume to be used for the color of the fire emission.

Mask Volume

Selects the volume that’s used for masking emission for the fire component. Setting this to Smoke will use Smoke Volume for masking. Otherwise, the mask volume is specified in Custom Volume.

Custom Volume

When Mask Volume is set to Custom Volume, this volume will be used for masking the fire emission.

Secondary Fire

Intensity Volume

The name of the volume to be used for the intensity of the second fire emission.

Color Volume

The name of the volume to be used for the color of the second fire emission.

Exports

Emission

Emission Output

Sets which emission component to output. All Combined should be used for getting final renders, while all other options can be used for debugging purposes.

Image Plane Exports

Smoke

Sets the name of this extra image plane on the selected mantra nodes (as set by Mantra Nodes to Update), when the Update Nodes with Image Planes button is clicked. To turn off the image plane on the mantra nodes, turn off the checkbox on the left side of this node and click Update Nodes with Image Planes again.

Scatter

Sets the name of this extra image plane on the selected mantra nodes (as set by Mantra Nodes to Update), when the Update Nodes with Image Planes button is clicked. To turn off the image plane on the mantra nodes, turn off the checkbox on the left side of this node and click Update Nodes with Image Planes again.

Scatter Mask

Sets the name of this extra image plane on the selected mantra nodes (as set by Mantra Nodes to Update), when the Update Nodes with Image Planes button is clicked. To turn off the image plane on the mantra nodes, turn off the checkbox on the left side of this node and click Update Nodes with Image Planes again.

Fire

Sets the name of this extra image plane on the selected mantra nodes (as set by Mantra Nodes to Update), when the Update Nodes with Image Planes button is clicked. To turn off the image plane on the mantra nodes, turn off the checkbox on the left side of this node and click Update Nodes with Image Planes again.

Fire Mask

Sets the name of this extra image plane on the selected mantra nodes (as set by Mantra Nodes to Update), when the Update Nodes with Image Planes button is clicked. To turn off the image plane on the mantra nodes, turn off the checkbox on the left side of this node and click Update Nodes with Image Planes again.

Second Fire

Sets the name of this extra image plane on the selected mantra nodes (as set by Mantra Nodes to Update), when the Update Nodes with Image Planes button is clicked. To turn off the image plane on the mantra nodes, turn off the checkbox on the left side of this node and click Update Nodes with Image Planes again.

Mantra Nodes to Update

A space separate list of render nodes which are updated based on enabled/disabled image plane names.

Update Nodes with Image Planes

When this button is clicked, the set image plane names will be created on the given mantra nodes (as set by Mantra Nodes to Update).

See also

VOP nodes