On this page |
The new pyro instancing system in Houdini lets you instance different pyro sources, change and randomize their attributes, apply transformations, and customize ignition times.
In a nutshell, multiple pyro sources are packed through Pyro Source Pack nodes and merged into a library. The individual elements of this library are then scattered through a point source, for example a Scatter node or along curve points. With an Attribute from Pieces you randomly assign different library elements to the scatter points.
Tip
For explanations around pyro source instancing, please see the Pyro instancing definitions.
The Pyro Source Pack SOP creates a packed source set from its input volumes. A packed source set, however, consists of a packed primitive containing the source volumes, along with the rules on how to apply them to a pyro simulation. In the example below you create a packed source set that includes density
and temperature
volumes, with rules that indicate to
-
add the source
density
volume to thedensity
pyro field, -
pull the
temperature
pyro field towards the targettemperature
volume.
Packed source sets library ¶
Note
Please note that the following guide is a conceptual example. When working with a real scenario, you should also specify the Pyro Source Pack node’s Frame Range parameter.
-
On obj level, create a Geometry node and dive into it.
-
Press ⇥ Tab in the network editor and invoke the Pyro Configure Billowy Smoke tool. This will create a small chain of nodes to simulate smoke.
-
Locate the
volumerasterizeattributes
node. Source volumes are the output of this node, consisting ofdensity
,temperature
, andv
VDBs. -
Put down a Pyro Source Pack node and connect its input to the output of
volumerasterizeattributes
. The new node will create the packed source set. -
Set the Name parameter on this new node to
torus_smoke
. The output of this node is a packed source set calledtorus_smoke
.
Note
When you look at the Pyro Source Pack sources, you can see the rules for the density
, temperature
, and v
fields - plus a default burn
field. The burn
rule is unnecessary here and should be deleted in real scenarios, but it will work for our simplified example.
In the next step you create two more sources from the chain’s first five nodes.
-
Copy the chain of nodes starting at the Torus up to your newly-added Pyro Source Pack node. Press ⌃ Ctrl + C to copy these nodes and ⌃ Ctrl + V to paste them in the same network.
-
Select the
smoke_base1
node of the newly-pasted chain and delete it. Replace it with a Sphere. -
Select the Pyro Source Pack node at the end of the new chain chain and change its Name parameter to
sphere_smoke
. -
Repeat steps 1-3 above, but with a Box. Call this packed source set
box_smoke
. -
Put down a Merge and connect the three Pyro Source Pack nodes to it. Rename this node to
LIBRARY
.
Scattering and random instancing ¶
-
Create a new Grid. Change its size to
25x25
and connect it to a new Scatter. -
On the Scatter node, set Force Total Count to
18
. -
Add a new downstream Attribute from Pieces node.
-
Connect the Merge node (
LIBRARY
) to the node’s second input. -
Set Mode to Random.
-
Under Copy Attributes, add
source_rules
. The scatter points will now have the basic necessary attributes needed for instancing sources. -
Add a Time Shift node and connect its input with the output of the Attribute from Pieces operator.
-
⌃ Ctrl + ⇧ Shift + click the Frame parameter to erase the expression and set its value to
1
. This will ensure that the same set of instance points is used for all frames. Without this node, the instance points will not be valid once the library empties (i.e. when the current frame exceeds frame range of the packed source sets).
Simulate using instanced packed source sets ¶
-
Find the Pyro Solver (
pyrosolver_billowy_smoke
). Connect the solver’s first input with the output of the Time Shift node. -
Navigate to the solver’s Sourcing tab and change Source Type to Packed Sets.
-
Finally, direct the solver at the library of packed source sets. To this end, set Source Library to
../LIBRARY
(in reference to the Merge node you created before). -
Press in the playbar to run the simulation.