Houdini 20.5 Nodes VOP nodes

XPU Pyro Preview VOP node

Simplified smoke, fire, and explosions shader for Karma XPU.

On this page

Overview

This shader implements a subset of Pyro Shader features and can be used on Karma XPU.

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:

Parameters

Smoke

Smoke

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.

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.

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.

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).

Scatter

Scatter

Intensity Scale

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

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.

Mask Colors

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.

When the ramp is set white to black from minimum to maximum:

When the ramp is set black to white from minimum to maximum:

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

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.

Fire Color

Controls how the Color Volume values are mapped to emission 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 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.

Mask Colors

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.

Secondary Fire

Fire

Intensity Scale

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.

Scatter

Scatter Volume

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

Fire

Intensity Volume

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

Secondary Fire

Intensity Volume

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

See also

VOP nodes