Up to date
This page is up to date for Godot 4.3
.
If you still find outdated information, please open an issue.
Particle turbulence¶
Turbulence uses a noise texture to add variation and interesting patterns to particle movement. It can be combined with particle attractors and collision nodes to create even more complex looking behavior.
There are two things you have to do before turbulence has any effect on a particle system. First you must add movement to the particle system. Turbulence modifies a particle's movement direction and speed, but it doesn't create any. It is enough to give the particle system some gravity, but you can just as well create a number of attractors if you want the particles to follow a more complex movement path. Second, you need to enable turbulence in the particle process material. Once enabled, you have access to all the turbulence properties.
Warning
Turbulence makes use of 3D noise, which has a high performance cost on the GPU. Only enable turbulence on a few particle systems on screen at most. Using turbulence is not recommended when targeting mobile/web platforms.
Noise properties¶
The basis for particle turbulence is a noise pattern. There are several properties that allow you to manipulate different attributes of this pattern.
The Noise Strength
property controls the pattern's contrast, which affects the overall turbulence
sharpness. A lower value creates a softer pattern where individual movement paths are
not as sharply separated from another. Set this to a higher number to make the pattern more
distinct.
The Noise Scale
property controls the pattern's frequency. It basically changes the noise texture's UV scale
where a smaller value produces finer detail, but repeating patterns become noticeable faster. A larger value
results in a weaker turbulence pattern overall, but the particle system can cover a larger area before repetition
starts to become an issue.
The Noise Speed
property takes a vector and controls the noise panning speed and direction.
This allows you to move the noise pattern over time, which adds another layer of movement
variation to the particle system.
Warning
Don't mix up particle movement speed and noise panning speed! They are two different things.
Particle movement is determined by a number of properties, including the turbulence noise.
The Noise Speed
property moves the pattern itself, which in turn changes where the
noise affects the particles.
At a value of (X=0,Y=0,Z=0)
, the noise pattern doesn't move at all. The influence on particle
movement stays the same at any given point. Set the speed to (X=1,Y=0,Z=0)
instead, and the
noise pattern moves along the X-axis.
The Noise Speed Random
property adds some randomness to the noise panning speed. This helps
with breaking up visible patterns, especially at higher panning speeds when repetition becomes
noticeable faster.
Influence properties¶
The influence properties determine how much each particle is affected by turbulence. Use
Influence Min
to set a minimum value and Influence Max
to set a maximum value. When a
particle spawns, the influence is randomly chosen from within this range. You can
also set up a curve with the Influence Over Life
property that modifies that value
over each particle's lifetime. These three properties together control the strength of
the turbulence's effect on the particle system as described before.
Since these properties affect the overall influence of the turbulence over a particle system, both movement direction and speed change as you set different values. A stronger influence causes a particle to move faster and all particles to follow along narrower paths as a result of that.
Displacement properties¶
Displacement changes a particle's starting position. Use Initial Displacement Min
to set a
lower limit and Initial Displacement Max
to set an upper limit. When a particle spawns, the
amount of displacement is randomly chosen from within this range and multiplied by a random
direction.
Displacement is very useful to break up regular shapes or to create complex shapes from simpler ones. The only difference between the particle systems in the screenshot below is the value given to the displacement properties.