On this page |
Simulating fire and smoke is typically done by generating volumetric data in SOPs or DOPs. COP Pyro is a 2D method of creating very fast fire and smoke with an infinite timeline. It lets you create a sparse GPU Pyro solver and adjust the look and feel of the fire or smoke in realtime.
Blocks in Copernicus ¶
Blocks in the COP network act similar to compile blocks in the SOP network, as they encapsulate a bunch of nodes that you can treat as a single object. They typically consist of a Block Begin node and a
Block End, with other nodes in between. Turning on Simulate enables simulation mode, which ties the process to the frame bar, allowing for caching and checkpointing in memory for faster recooking and scrubbing.
Another important feature is Live Simulation, which allows Houdini to continuously animate in almost real-time, providing real-time feedback for changes. This is similar to a video game world, where things play whether or not you are actively pressing anything. This mode is not tied to the playbar, but it’s still recooking all the time. So if you make a change in the network, you will see its results being played back live in the viewport.
Understanding COP Pyro ¶
Pyro Blocks ¶
Pyro blocks function like Flow blocks. However, they have a comprehensive set of utilities like Pyro Disturbance and
Pyro Turbulence, allowing you to create realistic fire and smoke simulations.
Pyro blocks consist of a Pyro Block Begin and a
Pyro Block End with simulation mode turned on by default, and inputs/outputs for density, velocity, and temperature, are already set up. However, just like other blocks, you can turn off simulations, run fixed iterations, or enable live simulation.
Once you use the tab menu to put down a Pyro Block, you will see there’s also a Pyro Configure that gets created. Unlike other COP nodes, VDBs in Pyro require explicit activation due to their sparse nature.
Pyro Configure creates empty VDBs for
density
, v
, and temperature
. You can activate specific regions by wiring in points or other sources to activate pts
. It’s important to note that this node is outside of the Pyro block because activation is expensive and can typically be done once per substep, not every time you source something. It is also where you control the Resolution of your simulation. The default Resolution is set at 100
for fast fire and smoke, but you can increase this to increase the quality.
Sourcing ¶
You can use either a Pyro Source from Points or a
Pyro Source from Layer to source points into the VDB. You can use these to continuously add density and temperature into the simulation. There are parameters on these nodes where you can adjust the Noise and Distortion to break up and improve the look of your fire or smoke.
Unlike the Flow solver that has buoyancy built in, the Pyro solver requires explicit force nodes like Pyro Buoyancy to drive velocity. As velocity increases, the smoke will continue to rise, which means you’ll pay more time and memory to have smoke plumes forever rising. You can control this by setting the Clip parameters on the
Pyro Block Begin node, which prevents simulations from growing indefinitely beyond what the camera sees.
Visualizing ¶
Another advantage of COP Pyro over SOP or DOP Pyro is the ability to visualize within the network during simulation . For example, you can use a VBD Visualize Slice to look at an individual slice. You can move this slice back and forth with the Offset parameter to see different slices of the sim, as well as scrub back and forth in the playbar to see what it looks like over time. You can also use a
VBD Visualize Velocity to see the velocity trails.
Lighting ¶
You can attach a Rasterize Volume COP after the
Pyro Block End to visualize the simulation, however you will need to manually set up lights. There are three types of Pyro lights:
Pyro Light Ambient (all direction light),
Pyro Light Scatter (internal scattering of light inside a VDB), and
Pyro Light from Points (directional point light). You can chain all of the lights together in a network, since they are cumulative.
Caching ¶
Copernicus flushes data to the CPU when memory runs out. You can control when this happens with the Video RAM, in Edit ▸ Copernicus Settings. For more information on memory management and caching, see Cooking.
Realtime adjustment ¶
When building your simulation, you can optionally turn off Cache Simulation on the Pyro Block End node to allow for realtime adjustments of Pyro nodes, such as
Pyro Disturbance, to see the effects of changes instantly. Although this approach requires recooking from frame one when scrubbing backward, Copernicus is fast enough to handle this.
Using COP Pyro ¶
Building a Pyro solver from scratch is not the primary way you would use Pyro in COPs. Houdini ships with several Pyro Configure examples, similar to shelf tools, that put down networks of nodes for learning purposes. These examples are available through the tab menu in Copernicus, and will be a starting point for using Pyro in COPs. You can edit these prebuilt networks to create your own fire and smoke simulations.
Illustrates a simple rising dense smoke cloud. It can be used as a template for building smoke in your scene.
Illustrates a minimal fast moving fire setup that can be used as a template for building fire in your scene.
Illustrates a falling dry ice effect. It demonstrates setting up colliders in Pyro, and shows how to send more than one thing into the passthrough
port by using cables. It also shows how to limit the rasterizing of smoke to a depth map.
Illustrates 3 colored smokes interacting. It also demonstrates how to use the feedback wires to add additional fields to the simulation.