Particles¶
Particle nodes provide a conversion from Nuke particles into Eddy’s system. Eddy particles allow interaction with volumetric channels and give access to particle instancing. Particle Expressions can be used to customize channel data and enable more low-level access to attributes.
EddyParticleAdvect¶
Moves particles through a velocity field without considering their mass or acceleration.
Usage
This node can for example be used to move particles though a fluid simulation and the particles will track with the fluid motion.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
velocity |
EddyChannel |
1-100 |
An Eddy velocity field that will move the particles. |
Output |
ParticleSystem |
1 |
The Eddy particles after they have been advected. |
EddyParticleAge¶
Advances the age of a particle and deletes it when its lifespan has been exceeded.
Usage
This node can be placed at any stage of a particle simuation tree.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
Output |
ParticleSystem |
1 |
An Eddy particles system after the aging has occurred. |
Controls
Parameter |
Values |
Description |
---|---|---|
Maximum Age |
0…inf |
The maximum lifespan of a particle in seconds. |
Kill Probablilty |
0…1 |
The probability of a particle to die after its exceeded its lifespan. |
Note
Use the kill probability to generate more random variation in the lifespan of a particle.
EddyParticleCache¶
Writes a set of Eddy particle channels in the OpenVDB file points format, and loads back previously saved caches when scrubbing the timeline.
Usage
This node can for example be used to cache the frames from an Eddy particle simulation to file - allowing the data to be used later for rendering or interaction with another areas without the need of re-evaluation. To cache out a sequence press the WriteCache button on the node, select the desired frame range and press ‘ok’.
It also enables an interactive workflow. When a simulation is being cached, this node will load the previously saved cache when trying to view a frame earlier than the current simulation time. Without the EddyParticleCache node, the output of a particle simulation will always be at the last evaluated state, regardless of the current frame in the timeline.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system containing channels that will be cached to a file. |
Output |
ParticleSystem |
1 |
Either the same Eddy particle system as is the input to this node, or a previously cached particle system if an earlier frame is requested. |
Controls
Parameter |
Values |
Description |
---|---|---|
Nuke Auto Cache Path |
True/False |
Enable automatic Nuke caching of channel set data |
File Name |
Filename |
The nuke style filename (including file path) to which the cache should be written |
Channel Information |
Multiselect list |
A list of all particle channels avaliable in the input particle system. The selected channels will be written to the cache. See Channel Set widget. |
Overwrite |
True/False |
Controls whether the cache node is allowed to overwrite existing files or not |
Use Write Range |
True/False |
If enabled the cache node will only write frames from the interval between Start Frame and End Frame |
Write Range Start Frame |
-inf…inf |
First frame that will be cached |
Write Range End Frame |
-inf…inf |
Last frame that will be cached |
Note
Use the ‘#’ character to automatically enumerate cache files. myfile.#.vdb will result in files myfile.1.vdb, myfile.2.vdb etc. and myfile.####.vdb will result in files myfile.0001.vdb, myfile.0002.vdb etc.
EddyParticleCacheLoader¶
Reads an OpenVDB points cache from disk and converts it to a particle system.
Usage
This node can be used to read back Eddy particle data that has been stored on disk as well as externally generated particle data - for example data from simulations created by other tools than Eddy.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system containing channels that will be cached to a file. |
Output |
ParticleSystem |
1 |
Either the same Eddy particle system as is the input to this node, or a previously cached particle system if an earlier frame is requested. |
Controls
Parameter |
Values |
Description |
---|---|---|
File Name |
FilePath |
Location of the .vdb file (eg: /data/cache.#.vdb ) |
On Error |
List |
Sets the behavior when there is a problem loading a file. See File Error Modes for more information. |
Channel Information |
Multiselect list |
Selects which channel to load from the cache, and sets channel properties such as the default value. See Channel Set widget. |
EddyParticleCollision¶
Resolved collisions between particles and colliders. The velocities of the particles will be updated to respect the collision object.
Usage
Use this node in combination with EddyParticleIntegrate to resolve collisions. Make sure to place it before EddyParticleIntegrate, as it will integrate the newly computed velocities and move the points to their new location.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
collider |
Collider |
1-100 |
An Eddy collider that will be used to compute collisions with the particles. |
Output |
ParticleSystem |
1 |
An Eddy particles system with newly calculated velocties to respect the collisions. |
Controls
Parameter |
Values |
Description |
---|---|---|
Feature Size |
0…inf |
The smallest feature size that should be resolved on the colliders. This only applies to the surface normal direction of the collision response. Larger values will blur the normal response. |
Friction |
0…1 |
The friction value when particles are in contact with the collider. |
Bounciness |
0…1 |
An artificial bounce value when particles are in contact with the collider. |
Adhesion |
0…1 |
The adhesion strength for particles to stick to the collider. |
Adhesion Distance |
0…inf |
The maximum distance from the collider at which particles experience the adhesion force. |
Dampening |
0…1 |
A dampening factor when particles are in contact with the collider. |
EddyParticleEmitter¶
Emits particles from a mesh.
Usage
This node can be placed at the beginning of a particle simulation. When the mesh provides uv coordinates, textures can be used to attenuate emission by sampling the supplied image. Fields can be used for initial emission forces.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
mesh |
Mesh |
1 |
A mesh that will be used for emission. |
texture |
Image |
1 |
Nuke image data that will be used to attenuate emission. |
Initial Force |
Field |
1 |
An Eddy field that will be used to generate the initial force for the new particles. |
Output |
ParticleSystem |
1 |
An Eddy particles system with newly emitted particles. |
Controls
Parameter |
Values |
Description |
---|---|---|
Feature Size |
0…inf |
The spacing in world space units particles will be distributed over the mesh. |
Emission Rate |
0…inf |
The rate per second particles will be emitted per unit area. |
Normal Velocity |
0…inf |
How much the surface normal contributes to the initial velocity of each particle. |
EddyParticleExpression¶
Allows to modify particle channels via expressions.
Usage
By writing a script function all particle attributes can be modified and interact with other areas like field channels.
See Expressions for general information about writing expressions, such as how to provide input parameters to your expressions.
The script must define a function called ‘particlEddyexpression’, which takes the particle id as a parameter, and gives access to all particle attributes via the particle.attributEddyname construct. Certain particle channels like particle.id are read only and will not be updated.
The functions should be defined as follows in the script:
def particlEddyexpression(i_particleIndex=Int):
particle.position = [i_particleIndex * 0.24, 0.0, 0.0]
void particlEddyexpression(const int i_particleIndex)
{
particle.position = makEddyfloat3(i_particleIndex * 0.24, 0.0, 0.0);
}
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system that the expression will be run on. |
Output |
EddyChannel |
1 |
An Eddy channel defined by the script. |
Controls
Parameter |
Values |
Description |
---|---|---|
Type |
List |
The type of the field. |
Language |
List |
The language in which the expression script is written. |
Expression |
Text |
The script containing the function defining the field. To commit your changes the ‘apply’ button must be pressed. |
Languages
Name |
Description |
---|---|
Python |
A script written in EddyScript, which is a Python-like language. |
C++ |
A script written in C++. |
EddyParticleForce¶
This node adds forces to each particle.
Usage
Connect one or multiple force fields that will contribute to the particle’s force accumulation.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
force |
Field |
1-100 |
An Eddy vector field that will be used add forces to each particle. |
Output |
ParticleSystem |
1 |
An Eddy particles system with newly added forces. |
EddyParticleIntegrate¶
This node integrates all the forces and advances the particle system to the next time step.
Usage
This node is placed at the end of a particle simulation graph.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
Output |
ParticleSystem |
1 |
An Eddy particles system at the new time step. |
Controls
Parameter |
Values |
Description |
---|---|---|
Gravity |
(0,0,0)…(inf,inf,inf) |
Constant gravity acceleration in units/s. |
Note
This is different to the EddyParticleAdvect node, which does not take mass or acceleration into account.
EddyParticleSetValue¶
This node allows to set a value on a particle channel. This can either be a uniform value or randomized per particle.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
1 |
An Eddy particle system. |
Output |
ParticleSystem |
1 |
An Eddy particles system at the new time step. |
Controls
Parameter |
Values |
Description |
---|---|---|
Channel Type |
List |
Selects the type of channel which will control the channel selection. |
Channel Name |
List |
Selects the channel to be used. |
Mode |
List |
Selects which operation mode to perform. |
Uniform Value |
Float/Vector/Int |
A uniform value that will be set on all particles. |
Uniform Random Component |
Bool |
When using vectors each vector component will be randomized individually. |
Minimum Random Value |
Float/Vector/Int |
The minimum value for the random range for each particle. |
Maximum Random Value |
Float/Vector/Int |
The maximum value for the random range for each particle. |
EddyParticleSystem¶
An Eddy particle system that can be used in conjunction with other eddy particle nodes.
Usage
Connect a Nuke particle system or use as a source for native Eddy particle workflows.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
0…1 |
A Nuke particle system that will be converted to Eddy particles. |
Output |
ParticleSystem |
1 |
An Eddy particle system. |
Controls
Parameter |
Values |
Description |
---|---|---|
Start Frame |
-inf…inf |
All stored particles will be cleared whenever the current time is on or below the start frame. |
Channel Information |
Multiselect list |
Selects which channel to convert from Nuke or create new channels from scratch. Channels can be added in addition to Nuke channels to help Eddy native particle workflows. |
EddyParticleVisualizer¶
A visualizer for an Eddy particle system.
Usage
Connect an Eddy particle system and select ensure the node is visible in the panel.
Inputs/Outputs
Connections |
ClassType |
Number |
Description |
---|---|---|---|
particles |
ParticleSystem |
0…1 |
An Eddy particle system |
Controls
Parameter |
Values |
Description |
---|---|---|
Enabled |
True/False |
Enables the visualizer. |
Color Mode |
List |
The mode used to determine the color of a particle. See Particle Visualizer Modes for more information. |
Color |
(0,0,0)…(inf,inf,inf) |
The uniform color for each particle. |
Color Channel |
String |
The particle channel used to determine the varying color of each particle. |
Velocity Color Remap |
True/False |
When enabled, the velocity magnitude of the velocity is used to color the particles. |
Max Velocity |
0.0…inf |
The particle color turns white as the velocity magnitude approaches this value. |
Radius Mode |
List |
The mode used to determine the radius of a particle. See Particle Visualizer Modes for more information. |
Radius |
0.0…inf |
The uniform radius for each particle. |
Radius Channel |
String |
The particle channel used to determine the varying radius of each particle. |