Houdini 20.5 Nodes Geometry nodes

Pyro Trail Source geometry node

Creates points suitable for sourcing into pyro simulations to create trails for explosions.

On this page
Since 18.5

Overview

This node generates point clouds that travel along curves created by Pyro Trail Path or Ballistic Path nodes. The generated point clouds represent emission from projectiles moving along the trajectories and can be used to source into a pyro simulation.

Warning

This node uses the time point attribute to determine projectile locations for each frame. Thus, this attribute must be present on the incoming geometry.

Trail Source Types

  1. The node allows you to generate trails around the input points in a spherical shape, from which the trails will be launched outward. To achieve this, set Shape to Sphere.

  2. It can also generate trails along the direction of the burst (as set by Direction), which allows you to start trails from the mushroom cloud as it rises. Pyro Trail Path SOP will output such trails when Shape is set to Line.

Trail Components

A trail is made of a replicated set of points or what we call trail components. Each trail component represents a source attribute for pyro simulations. For each component, one of the following source attributes can be selected, which creates the corresponding point attributes.

  • Density (density), represented as grey color.

  • Temperature (temperature), represented as blue color.

  • Divergence (divergence), represented as orange color.

  • Burn (burn), represented as yellow color.

  • Color (Cd), which you determine.

  • Alpha (Alpha), represented by purple color.

The output of this node will be a mix of trail components, each responsible for capturing its own specified attribute. These attributes should be rasterized into volumes using the Volume Rasterize Attributes SOP, at which point they can be sourced into a pyro simulation or rendered directly as secondary effects. The Source Attribute (source_name by default) is created on points to ensure that each component only contributes to rasterization of its own attribute. For example, the temperature attribute will be set to 0 for points from the burn component, so using these burn points during temperature rasterization would lower the values in the final volume.

The velocity (v) attribute is a special exception. By default, v is appended to the Source Attribute of each point, signaling that all points should be used when rasterizing the velocity field. You can use Cull Velocity in the Quick Setups menu if you prefer to have only one burst component contribute to velocity rasterization.

Note

Turn on Prefix Attribute Name to prefix the source attribute’s name with trail_. This is useful for differentiating between sources created by this node and the Pyro Burst Source SOP.

Tip

Run the Source Volume option from the Quick Setups menu to quickly create a Volume Rasterize Attributes node that is automatically appended and updated based on the parameters on this node.

The rasterized volumes can be sourced into a pyro simulation or rendered directly as secondary effects.

Source Volume

If you want the trails to interact with the explosion, you need to source the generated volumes into the pyro simulation. This way, smoke sourced by the trails can be pushed by the simulated explosion, and the projectile’s motion can pull puffs of smoke from the main blast. You can alternatively run a secondary simulation, which lets you capture the effect of the main explosion on trails, without the trails affecting the explosion.

Render Volume

In many cases, especially when the explosion is in the background, you can forego simulating the trails and render them directly. In this case, turn on Scale Over Duration and Scale Along Trailing with Scale Further Using Age (found in the Trail Components tab). These options will fade the trails in various ways and make the volume more suitable for rendering.

Customizing Trails

You can generate trail components for an arbitrary number of paths with one node. By default, all trails will have the same properties, as set by the node’s parameters (such as Point Separation, Length, etc.). To vary these properties for each path, select the Set Varying option on the menu next to the corresponding parameter. This will use a different random value in the provided range for each input point. These generated random numbers are seeded with a primitive number by default; to use a custom integer attribute instead, set Randomization By to Seed Attribute. This will ensure that randomized properties will remain the same for an input curve even if primitives are shuffled or removed from the input, provided the value of the Seed Attribute stays the same.

You can also manually override parameter values with attributes. For example, if the input geometry has a trailingsep primitive attribute, its value can be used instead of the global Point Separation. This allows you to finely control particle separation for each input curve independently. To do this, the menu next to the corresponding parameter must also be set to Use Attribute.

Tip

You can use the randomization button on the right side of the menu to put down an attribute adjust node that creates or affects the relevant primitive attribute.

Parameters that can be controlled by primitive attributes are listed in the table below.

Parameter Name

Range

Attribute Name

Attribute Type

Point Separation

0 to ∞

trailingsep

float

Length

0 to ∞

trail_length

float

Radius

0 to ∞

trail_radius

float

Start Frame

-∞ to ∞

startframe

float

Speed

0 to ∞

speed

float

Fade by Age

0 to ∞

fade_startage

float

Warning

It is important that the number of incoming curves stays constant over time. Additionally, attributes controlling trail properties (listed above) should never be animated over time.

Primitives attributes corresponding to the name of the trail components will act as a multiplier on that source value. This provides fine control over each trail’s source values. A source attribute with a value of 0 will not create the corresponding trail component. For example, you can set the density attribute to 0 on some selected primitives, and those trails will not generate a density component. It is also safe to animate these attributes to control emission per trail over time.

Trail Component

Attribute Name

Attribute Type

Density

density

float

Temperature

temperature

float

Divergence

divergence

float

Burn

burn

float

Color

Cd

vector

Alpha

Alpha

float

Parameters

General

Group

The subset of the input primitives to use for source generation. Leave this blank to use all incoming paths.

Guide Display

Set this menu to Trail Path to see the incoming ballistic paths alongside the generated source points.

Quick Setups

This menu lets you run some simple scripted setups to help with the most common tasks.

Source Volume

Creates a Volume Rasterize Attributes node that is linked and automatically updated based on the parameters on this node.

Cull Velocity

Creates an Attribute Wrangle node downstream that modifies the Source Attribute to ensure that a single trail component will contribute to velocity rasterization.

Pyro Simulation

Creates a simple setup to quickly simulate the trails.

Initialize

Force Uniform will set all parameter override menus to Set Uniform. This is useful if you want all trail properties to be controlled by the parameter interface. Use Attribute will look for incoming attributes and corresponding parameters will be set to Use Attribute.

Additional Guides

Bursts usually disappear soon after their creation, which can makes it difficult to visualize them together with the trails. Turn this on to see pyro bursts as guides while displaying this node to help synchronize the animation of different elements. It can accept a white-space separated list of Pyro Burst Source nodes.

Randomization By

Controls how the random selection is seeded for parameters that are using Set Varying. Topology changes on the input geometry can shift element numbers, causing different random selection to be used. Seed Attribute lets you provide an integer attribute to make sure the random value is not dependent on element order.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Seed Attribute

Name of the integer primitive attribute to use for seeding random selection for parameters that are using Set Varying.

Trail Shape

Trailing

Point Separation

Sets the point density of generated points. Smaller values will create denser point clouds, which will also yield more details in the rasterized volumes. Larger values are suitable for background elements.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Variation

Sets the maximum allowed variation for point separation. The generated values will fall between Point Separation - Variation and Point Separation + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Length

Sets the length of the trails in world units. Larger values produce longer trails behind the leading point.

Tip

Use Correct Length Stepping on a component to make sure its trail length is no shorter than the distance traveled in a single frame.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Variation

Sets the maximum allowed variation in world units. Trail lengths will be between Length - Variation and Length + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Radius

Sets the thickness of the trails. Use the Radius Along Trailing ramp to control the thickness of the trail along its length.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Variation

Sets the maximum allowed variation for radii. The generated values will be between Radius - Variation and Radius + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Radius Along Trailing

Controls the thickness of the trail along its length. Going from right to left, the vertical axis of the ramp controls the trail thickness at the tip and end, respectively. Use Radius to scale the overall thickness of the trails.

Shape Noise

Enable Trailing Noise

By default, the whole trail will very strictly follow its path. Turn this parameter on to add noise to point positions along the trail. When this option is turned on, generated source points will move more chaotically around their path.

Amplitude

Sets the strength of the applied noise.

Noise Rolloff

Controls the affect of the noise across the length of the trail. When this is set to 0, the noise will be applied uniformly across the entire length of the trail. Increase this value to reduce the effect of noise near the front of the trail.

Size

Controls base feature size of the generated noise. The value applies to each axis.

Offset

The offset into the noise field. Change this value if the current noise pattern is undesirable.

Trail Animation

Animation

Start Frame

Controls when projectiles start moving along the paths. The menu next to this parameter is set to Shift Forward by default, since a startframe primitive attribute will exist on paths created by a Pyro Trail Path node. If this attribute does not exist, a default value of 0 will be assumed, which will then be affected by the Offset.

Note

Source points will only be generated on frames following it, since the trail has no length on its start frame.

Note

Float type time point attribute is used to tell the position of the projectile on the path at a given time. When the trail is generated with Pyro Trail Path or Ballistic Path, time is set to start with the value of 0. The purpose of the startframe primitive attribute is to offset the time attribute to make trails start at the given frame.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Offset

Offsets the existing startframe attribute by this amount when the menu is set to Shift Forward or Shift Backward. This allows you to adjust the start frames without modifying attribute values. If this primitive attribute does not exist on the input, this parameter directly controls the start frames.

Variation

Sets the maximum allowed variation. The generated start frames will be between Start Frame and Start Frame + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Speed Scale

Sets how fast the projectiles move along their paths. Lowering this value will make the projectiles travel slower.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Variation

Sets the maximum allowed variation for speed scales. The generated values will be between Speed Scale and Speed Scale + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Trail Components

Source Value

Default Value

A global scale on all source attribute values, except color sources (Cd).

Scale Over Duration

Provides a ramp to scale the source attribute value over the duration of the trail. This will not apply to color sources (Cd). Enabling this can make a trail fade away as it reaches the end of its path.

Scale Along Duration Ramp

Controls the scale of the source attribute values as the trails move along their paths. The left and right sides of this ramp correspond to the start and end of a trail.

Scale Along Trailing

Provides a ramp to scale the source attribute value over the length of the trail. This will not apply to color sources (Cd). Enabling this can make the tip of the trail emit more strongly than its end.

Scale Along Trailing Ramp

Controls the scale of the source attribute values along the extent of the trail. The left side of the ramp corresponds to the trail’s end, while the right side applies to its tip.

Scale Further Using Age

Turn on this checkbox to automatically fade away the source attribute values as a trail moves along the path. Once the normalized age exceeds Fade by Age, sources will start getting scaled down. This scale gets smaller as the age increases, reaching 0 at the end of the path.

Fade Age

This parameter sets the age from which on the trails start to fade from the end, towards the tip of the trail. This is a 0 to 1 value, where 0 means the launch of the trail and 1 means the age when the trail dies off.

Variation

Sets the maximum allowed variation. The variation will be between Fade Age - Variation and Fade Age + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Pyro Sources

Number of Sources

Sets the number of source components that are created for each burst.

Source

Create Source

The corresponding burst component will only be created when Create Source is turned on. Turn this off to quickly disable a component.

Attribute

Sets the source attribute for this burst component. Burst points that have a value of 0 for this attribute will not generate a burst component.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Prefix Attribute Name

This will prefix the source attribute with the burst_. This is useful for differentiating between sources creating with this operator and those generated by the Pyro Trail Source SOP.

Source Value Scale

Scales the value of the source attribute for this burst component. Use the +/- button to quickly randomize the value per incoming point.

Variation

Sets the maximum allowed variation. The generated values will be between Source Value Scale - Variation and Source Value Scale + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Enable Noise

Changes the source value for the generated source points by a noise pattern.

Noise Operation

Sets how the noise pattern is combined with the source value. When this is set to Add Noise, the generated noise values will be between negative Amplitude and positive Amplitude, and will be added to the source value. The values are between 0 and Amplitude when this is set to Multiply, and the final source value is obtained by multiplying it with noise.

Amplitude

Sets the strength of the noise.

Size

Controls base feature size of the generated noise. The value applies to each axis.

Offset

The offset into the noise field. Change this value if the current noise pattern is undesirable.

Roughness

The scale increment between iterations of fractal noise. Higher values of Roughness produce finer details in the noise, while lower values yield a smoother noise field.

Base Color

Sets a constant color value for generated source points. The Base Color can be varied per trailing by enabling Hue Shift, Saturation, or Value.

Color

Sets the base color value for the source points. Hue Shift will be with respect to this color.

Hue Shift

When this checkbox is turned on, the hue is varied per trailing. Shifting by 0 produces the chosen Color, and other values correspond to moving along the color wheel.

Hue Shift Min

The minimum amount of hue shift. Each trailing will be given a hue shift between this minimum and Hue Shift Max.

Hue Shift Max

The maximum amount of hue shift. Each trailing will be given a hue shift between Hue Shift Min and this maximum.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Saturation

When this checkbox is turned on, color saturation is varied per trailing. Higher saturation results in more vibrant colors.

Saturation Min

The minimum color saturation to use. Each trailing will be given a saturation value between this minimum and Saturation Max.

Saturation Max

The maximum color saturation to use. Each trailing will be given a saturation value between Saturation Min and this maximum.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Value

When this checkbox is turned on, the value of the color will be varied per trailing. Value controls color brightness, with lower values producing darker colors.

Value Min

Minimum value to use for colors. Each trailing will be given a value between this minimum and Value Max.

Value Max

The maximum value to use for colors. Each trailing will be given a value between Value Min and this maximum. The maximum to decrease the intensity from Color.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Noise Color

Sets the color value based on a noise pattern. The generated one-dimensional noise pattern is mapped through the Color Over Noise ramp.

Mix Strength

Use Mix Strength to blend between the base color and the color generated by the noise pattern. The default value of 1 means that the noise color will overwrite the base color.

Size

Controls base feature size of the generated noise. The value applies to each axis.

Offset

The offset into the noise field. Change the value of the Offset if the current noise pattern is undesirable.

Roughness

The scale increment between iterations of fractal noise. Higher values of Roughness produce finer details in the noise, while lower values yield a smoother noise field.

Color Over Noise

A one-dimensional noise value is generated for each point. This ramp specifies how this single number is converted to a color. The left and right sides of this ramp correspond to noise values of 0 and 1, respectively.

Trail Overrides #

Correct Length Stepping

When the trail length is smaller than the distance the trails travel from one frame to the next, the trail volume will not be continuous. Turn on this checkbox to ensure that the length of the trail is at least this minimum distance for this trail component.

Length Scale

Scales the length of this trail component. This value acts as a component-specific multiplier on top of Length.

Variation

Sets the maximum allowed variation for length scales. The generated values will fall between Length Scale - Variation and Length Scale + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Radius Scale

Scales the thickness of this trail component. This value acts as a component-specific multiplier on top of Radius.

Variation

Sets the maximum allowed variation for radius scales. The generated values will fall between Radius Scale - Variation and Radius Scale + Variation.

Seed

Controls random selection for variation. Change this value if the current variation is undesirable.

Output Attributes

This tab controls additional attributes that can be generated by this node. Source Attributes are the ones needed for rasterization, while Generic Attributes control other attributes you might need for custom adjustments.

Source Attributes

Source Attribute

When this checkbox is turned on, this string attribute will be created to isolate only the relevant points for each output volume. For example, when rasterizing the burn attribute, only points whose Source Attribute value has burn in it will be considered.

Particle Scale

When this checkbox is turned on, a pscale point attribute will be created to store the representative size of each generated source point. Particle Scale acts as a multiplier for values of this attribute.

Velocity

When this checkbox is turned on, output points will have a v point attribute storing their velocity. Velocity acts as a multiplier for values of the v attribute.

Add Velocity Noise

Adds noise to the generated velocity values. Use this to break up the velocity field and produce more interesting motion during the simulation.

Amplitude

Sets how much to change the generated velocity values. When set to 0, the noise will have no effect.

Size

Controls base feature size of the generated noise. The value applies to each axis.

Offset

The offset into the noise field. Change the value of the Offset if the current noise pattern is undesirable.

Roughness

The scale increment between iterations of fractal noise. Higher values will produce finer details in the noise, while lower values will result in a smoother noise field.

Generic Attributes

Copy Input Attributes

Copies custom created point attributes from the input points to the generated points. This will ignore copying all internally used attributes.

Attributes

Only copy attributes whose names match this pattern. The default * copies all attributes. This will ignore copying all internally used attributes.

Normalized Age

The point attribute storing a zero to one value, which starts to increase from 0 when the burst component is created until 1 when the burst component is killed.

Trailing Position

The point attribute storing the position of each source point along its trailing.

Rest Position

When this checkbox is turned on, it creates an attribute to store the position of each point at the start of the burst. Unlike P, the rest position will not change as the burst points move.

Randomization Attribute

When this checkbox is turned on, the burstid point attribute will be created to store the value used by the Randomization By parameter.

See also

Geometry nodes