|On this page|
This tutorial is the third part in a series of three lessons. Please make sure to visit the previous pages before you proceed:
Smoke and fire can not only be created from objects, translated into seed points, but virtually from any point or particle source. This allows for interesting effects like burning cloth, igniting gasoline, impressive explosions, smoke-emitting wood splinters, dust from grains, and many more.
Houdini already provides a variety of pre-configured source nodes, for example the Pyro Burst Source SOP node. You can also source pyro from Vellum or RBD simulations, or use the Pyro FX Shelf Tools.
The Pyro Burst Source
The Pyro Burst Source is a modified Pyro Source SOP node to create all kinds of explosion effects. Here, the goal is to create a fireball, similar to those you can see when you pour gasoline into fire.
On obj level, create a Geometry SOP node, dive into it, and add a Pyro Burst Source SOP. In the viewport you see an explosion, represented through seed points.
Start with the Burst Shape tab to adjust the explosion:
To get more resolution, change Trailing ▸ Trailing Separation to
Set Trailing Length to
Define the time parameters under Burst Parameters:
Set Start Frame to
Increase Frame Duration to
11to make the explosion longer.
When you look at Burst Components ▸ Number of Sources, you can find the attribute fields you already know from the Create a burning tire lesson:
The attributes have to be rasterized:
Add a Volume Rasterize Attributes SOP node and connect it to the the Pyro Burst Source.
Under Attributes enter
density temperature burn.
Set Filter ▸ Voxel Size to
0.05. This is the Pyro Burst Sources Trailing Separation value.
Turn on the Volume Rasterize Attributes’s Display flag to convert the points into a cloud structure.
The Pyro Solver
The Pyro Solver SOP performs the simulation.
Add a Pyro Solver node and connect it to the Volume Rasterize Attributes node.
Set Setup ▸ Voxel Size to
Decrease Fields ▸ Dissipation to
Switch to the Shape tab:
Change Buoyancy to
Turn on Disturbance and enter
Turn on Turbulence and enter
Turn on Shredding and enter
Simulate the scene by click Play. There is no fire or flame-smoke transition, although all relevant attributes are active. Due to the low Dissipation rate and the missing velocity, the smoke cloud’s shape hardly changes anymore after around 35-40 frames.
Initializing the fields
The difference to the burning tire scene is that the points from the Pyro Burst Source don’t cast velocity. This has to be done manually:
In the Volume Rasterize Attributes node’s Attributes, add
vto the list.
To get fire and flames, go to Coverage ▸ Coverage Attribute. There remove
density. Now, all fields will be initialized and the cloud gets the missing fire look.
The video below shows the result. There is a burst now, and the flames turn into smoke, but the explosion is very short, small, and the flames disappear quickly.
Controlling explosion size and shape
The Pyro Burst Source node provides an input for points. Similar to the Pyro Source SOP node, you can connect an object to shape the smoke. Be careful with solid or high-resolution objects, because the Pyro Burst Source creates source points for every extra point of the connected geometry. So you might end up with a huge number of smoke seeds.
Add a Circle SOP and connect it to the Pyro Burst Source node’s input.
From the Orientation drop-down menu, choose
Increase Uniform Scale to
Set Divisions to
20to get a denser point cloud.
The fireball looks better now, but doesn’t show the typical curling behavior. To add a “swirl” to the simulation, add a Volume Velocity SOP node between Volume Rasterize Attributes and Pyro Solver:
Open the Curl Noise tab.
Turn on Add Curl Noise.
Change Scale to
Enhancing fire and flames
With this node, the fireball lasts longer before it turns into smoke. Please also note the glowing strcutures towards the end of the clip. They represent the burning of the vanishing gaseous residuals.
The video below uses Particle Trailing and Voxel Size values of
0.03. Smoke color and flame intensity are also slightly adjusted to get more detail: