This compound provides a framework for generating divergent-free velocity fields. This means that particles will move turbulently
without accumulating in any location (no "sinks" or "sources"). Curl noise allows you to create all sorts of groovy turbulence
effects, from streams of water flowing around rocks to flames flickering around burning logs or buildings.
You can set the main direction flow of the particles using the and parameters. On this main motion, you can add some turbulence using the parameter. This works in a way that is similar to math nodes in a 2D compositing application. You can add as many noises
as you want to this noise field, plugging them into the ports.
You can also add some boundary objects (obstacles) to the simulation, and the vector field is set to react accordingly in
those areas.
TipThis compound is used in the
Basic Fire compounds to give the particles some turbulent motion.
When this compound is used, the particle's Initial Direction and Speed (usually set in the Emit node) are overridden.
As well, when you use this compound in conjunction with other forces, such as Wind, you will need to increase that force's
strength significantly because the curl noise is a very powerful force.
Plug this compound's Execute output into the Execute output of the Simulation Root node. You can also plug its output into
the Force or Simulate ports, depending on the you choose below.
You can also select a point cloud with an ICE tree and choose from the ICE toolbar to automatically plug this compound into the Execute output of the Simulation Root node.
Tasks: Particles/Curl-Noise
Output Ports: Execute
Curl
|
Offsets the positions in space in which to sample the noise field in order to calculate the noise according to the scale of
the particle emitter. This value is in Softimage units.
If the particles are emitted from an object with a bounding box size of about 10 units, you don't need to change this offset.
However, if the emitter is very small, you should decrease the offset (like 0.001); and if the emitter is very large (closer
to 100 units), you should increase the offset (0.5 or more).
|
|
The way in which you want to use the curl noise to set particle data:
-
Allows you to use the curl noise purely as a force. Plug the compound's output into any Execute port of the Simulation Root
node, with a Simulate Particles node plugged into its Simulate port. This way, you can use other forces in conjunction with
the CurlNoise compound.
You can also plug the CurlNoise compound's output into the Force port of the Simulation Root node to use only this compound's
force.
-
Allows you to use the curl noise purely to set the point position. You can plug this compound's output into the Simulate
port of the Simulation Root node (it sets the point position instead of the Simulate Particles node doing the work). This
is the best way to keep the vector field incompressible.
-
Allows you to use the Curl noise purely to set the point velocity. Plug this compound's output into the Execute port of the
Simulation Root node.
|
Main Flow Direction
|
Sets the speed of the noise. The initial speed of the particles is overridden by this value.
|
|
Adds a drag force to particles that are within the Cutoff distance for the Boundary object (below). The Cutoff value must
be above zero for this drag to have any effect. It affects both the direction and speed of the particles.
This drag gives the effect of particles slowing down or stopping as they get close to the boundary, while particles that are
farther away keep or increase their speed.
|
|
Direction of the noise flow in XYZ global coordinates. The initial direction of the particles is overridden by this value.
|
|
Select this option if you are using a controller object to affect the particle flow's main direction.
|
|
Plug in the Out Name output of a controller object to use as an obstacle around which the particles flow.
|
|
If you are using a controller object, you can select which space is used for that object:
|
Perlin Noise Base Layer
This is controlled under the hood by the Perlin Turbulences compound.
|
Perlin noise has spatial coherence, meaning that several different points in roughly the same location in space tend to have
similar noise added to them. It interpolates between the random values. This allows for the creation of particle "streams"
within a noise field.
Perlin noise can help make objects more natural-looking by imitating the controlled random appearance of elements found in
nature; that is, there is structure to the noise while still appearing fairly random.
|
|
Similar to the Boundary Drag parameter above, this parameter adds a drag force to particles that are within the Cutoff distance
for the Boundary object, but affects only the movement of the noise field.
|
|
Defines the sequence of random numbers used. If you require that two nodes generate different sets of values with the same
parameters, simply assign them different seeds.
|
|
Allows the noise to evolve over time in a continuous manner. This allows for more variation in the noise pattern. If this
is off, the same noise pattern is repeated throughout the simulation.
|
|
The speed at which the noise evolves over time (how often the noise pattern is repeated). You must select the option for this parameter to have an effect.
|
|
The granularity of the noise pattern, meaning how often the noise pattern is repeated in this space. The greater the space
frequency XYZ values, the finer the noise.
|
|
Defines the number of octaves to be added to the noise. This basically adds a fractal-like complexity to the noise which increases
the level of detail of the noise pattern. This is useful for adding small-scale complexity to a large-scale noise field.
The value of the turbulence is calculated such that for each octave, a noise of half the amplitude and twice the frequency
is added. A complexity of 1 is simple noise with no fractal pattern.
Complexity has an impact on performance. Noise with 2 octaves takes twice as long to calculate than noise with only 1 octave.
|
Boundaries
You can use an object to act as a boundary (obstacle) for the particle flow.
|
Plug in the Value output from a surface object to act as the boundary.
|
|
The distance in Softimage units at which the particles are affected by the boundary object. For example, if you set this to
2, a "buffer" of 2 units is set around the object. Particles that are at this boundary are affected by any Boundary Drag values
that you set above.
For example, if you want particles to slow down or even stick as they get closer to the boundary, you can set the Boundary
Drag value. The Cutoff value must be above zero to use Boundary Drag.
|
|
Controls the falloff of the Cutoff value.
|
|
The gradient potential for more noise fields. You can plug in the Perlin Turbulence node here in which you can define an additional
noise field to be combined with the existing one. You can add as many noises as you want to this noise field.
For example, if you have a large-scale noise field created with the Curl-Noise Framework compound, you can create several
smaller-scale noises with the Perlin Turbulence node to add further complexity to the large-scale noise.
|