Houdini 21.0 Pyro

Pyro Configure Fireball

On this page

Overview

There are several Pyro Configure examples available through the tab menu. These are similar to shelf tools that put down networks of nodes for learning purposes. The Pyro Configure Fireball example illustrates a rising fireball and demonstrates how divergence can be used to drive a Pyro simulation.

Important nodes

SOURCE

Wire a Mono layer into this node to adjust where the smoke emits from. This node controls the thickness of the fire emission. A value of 0 will have no fire and 1 will have the full thickness. Note that the input is animated to create a pulse of explosion for a few frames.

pyro_configure1

Adjusts the resolution of the fireball. This is the number of voxels across the default imaging window. Higher resolutions will take considerably more time and memory.

layertovdbleafpoints3, pyro_sourcefromlayer5, pyro_sourcefromlayer4

The VDB has to be activated so you can source into it. Layer to VDB Leaf Points handles the activation from the SOURCE layer, while the Pyro Source from Layer handles the actual sourcing. The thickness and inputs for these two nodes should match.

pyro_block_begin3

The start of the simulation loop. All nodes inside the convex hull (highlighted area) will run every simulation step. The simulation is clipped from -1 to 1 by default, and can be controlled by modifying the Clip X/Y/Z parameters.

rescale_divergence

The hot areas of the simulation are set to expand. This node remaps the temperature field into how much divergence to apply. It ensures no expansion occurs below a minimal temperature of 0.1 and that a temperature of 1 would trigger 8 units of divergence. Too little divergence and there is no apparent effect, too much and the simulation rapidly explodes.

pyro_lightscatter1

Computes internal scattering of light within the fireball’s smoke. This takes the glow of temperature and diffuses it by bouncing it internally through the density field. This is most effective at creating an internal glow look to dark smoke.

pyro_lightambient3

Computes lighting for the fire’s smoke using an ambient light source. Increasing smoke density (with the Density Scale parameter) increases the contrast of self-shadows.

rasterizevolume3

Renders the fireball into a layer. The camera_ref can use an imported camera from the Camera Import COP to change the view or resolution of the render.

Learning from this example

To...Do this

Experiment with divergence

  1. Turn off Caching on pyro_block_end3 and go to frame 72.

  2. Adjust rescale_diverence and see the effect of changing divergence after 72 frames.

It is hard to see any effect over one frame, but by watching the end result you can gain a feeling for how it works.

Make many fireballs

The sdfshape3 has an animated source to make a single fireball, try using a Copy and Transform COP or adjusting the expression to make many.

Make the fireball glow brighter

On a frame with internal fire, such as 72, adjust the pyro_lightscatter1 node. Increase Iterations to allow the glow to bounce farther. Higher Density Scale also increases the ability for light to bounce through the smoke.

Pyro

Sparse Pyro

Pyro instancing

Legacy Pyro

COP Pyro