# Vector Field Modules

The most interesting feature of GPU particles, aside from their efficiency, is vector fields. A vector field is a uniform grid of vectors that influences the motion of particles. Vector fields are placed in the world as Actors (Global Vector Field) and can be translated, rotated, and scaled like any other Actor. They are dynamic and may be moved at any time. A field may also be placed within Cascade (Local Vector Field), limiting its influence to the emitter with which it is associated. When a particle enters the bounds of the vector field, its motion will be influenced by it and when a particle leaves the bounds, the influence of the field will fade out.

By default, vector fields impart a force on particles within them. Vector fields also have a "tightness" parameter. This parameter controls how directly particles follow the vectors in the field. When tightness is set to 1, particles read their velocity directly from the field and thus follow the field exactly.

Static vector fields are those in which the grid of vectors never changes. These fields can be exported from Maya and imported as a volume texture. Static fields are very cheap and can be used to add interesting motion to particles, especially by animating the motion of the field itself.

Additionally, vector fields may be reconstructed from a 2D image. In this case, an image much like a normal map can be imported and used to reconstruct a volume texture by extruding or revolving it around a volume. A static vector field may be added on top of this reconstruction to introduce some noise and randomness. Further, the 2D images may be animated by storing individual frames in an atlas texture. Doing so allows you to perform a fluid simulation offline and reconstruct the motion in real-time at very little cost.

## Global Vector Fields In this image, the small highlighted streaks throughout the scene are visualizations of a Global Vector Field Volume placed in the level.

The Global Vector Fields module allows for particle systems to use global vector fields. These are vector fields that are placed via volumes within a level, rather than being an inherent part of a particle system.

In order to be fully utilized, a Vector Field Volume Actor must exist in the level with a Vector Field associated with it.

Properties

Description

Vector Field

Global Vector Field Scale

This float value scales the amount of effect the global vector field will have on particle motion. Values lower than 1 will dampen the effect, while values greater than one will overdrive it.

## Local Vector Field The Local Vector Field module allows for a vector field to be associated directly with an emitter inside a particle system. This is useful when the vector field and the particle system are considered a single unit.

Properties

Description

Vector Field

Vector Field

Property contains the assigned Vector Field from the Content Browser. Simply select the desired vector field and then click the arrow button to assign it.

Relative Translation

This allows the vector fields position to be offset within the emitter.

Although you can change the translation of a local vector field numerically, it is far more intuitive to do it via the move widget in the Preview Pane. This widget is available whenever the Local Vector Field module is selected in the Emitter List.

Relative Rotation

This allows for a rotational offset for the local vector field.

Relative Scale 3D

This allows the scale of the Local Vector Field to be edited, which is useful depending on the scale the vector field was created.

Intensity

This affects the overall intensity of the local vector field. Think of it as a multiplier for the vector field's force. A value of 0 effectively deactivates the vector field. Values greater than 1 will overdrive the effect.

Tightness

This value controls how the vector field will control particle movement. A value of 0 means that the vector field is working as a force, additively influencing the velocity of the particles. A value of 1 means that particle velocity is completely replaced by the velocity defined in the vector field grid. Values between 0 and 1 blend the overall result between these two extremes.

## VF Init Rotation The Vector Field Initial Rotation module will allow for an initial amount of rotation to be applied to a vector field. This is useful when the vector field's overall direction needs tweaking, or to get a more randomized feel for the particle system's movement. This module automatically uses a max/min range for randomization of the vector field's rotation.

When using this module, it can be useful to visualize vector fields in the Preview Panel. This is done by clicking View > Vector Fields within the Preview Panel.

Properties

Description

Vector Field

Min Initial Rotation

The minimum initial rotation on the X, Y, and Z axes. This value is calculated as a [0..1] value. 0.25 = 90 degrees, 0.5 = 180 degrees, and so on.

Max Initial Rotation

The maximum initial rotation on the X, Y, and Z axes. This value is calculated as a [0..1] value. 0.25 = 90 degrees, 0.5 = 180 degrees, and so on.

## VF Rotation Rate

If you need a local vector field to have a constant rate of spin, then the VF Rotation Rate module is exactly what you need. Applying it allows for the specified vector field to have distributed rotation rate. This can lead to some highly interesting effects.

When using this module, it can be useful to visualize vector fields in the Preview Panel. This is done by clicking View > Vector Fields within the Preview Panel.

Properties

Description

Vector Field

Rotation Rate

This sets the rotation rate on the X, Y, and Z axes. The value is calculated in full rotations per second. So a value of 0.1 will require 10 seconds to make one full rotation.

## Vector Field Scale

The Vector Field Scale module allows for scaling of a vector field's influence. This is calculated only at the moment of particle birth.

When using this module, it can be useful to visualize vector fields in the Preview Panel. This is done by clicking View > Vector Fields within the Preview Panel.

Properties

Description

Vector Field

Vector Field Scale

This float distribution works like a multiplier for the vector field's influence.

## VF Scale/Life

The Vector Field Scale Over Life module allows for the scaling of a local vector field to take place over the life of an emitter. This is calculated throughout a particle's lifespan.

When using this module, it can be useful to visualize vector fields in the Preview Panel. This is done by clicking View > Vector Fields within the Preview Panel.

Properties

Description

Vector Field

Vector Field Scale Over Life

This float distribution works like a multiplier for the vector field's influence. By applying a curve, the scaling can be controlled over the life of the particle.