Close

Palette:particlesGpu

Summary

particlesGpu is a compute shader based particle system.

PythonIcon.pngPalette:particlesGpu Ext


Parameters - ParticlesGPU Page

Create Create - - Specify how particles are being created. You can either create a certain number of particles all at once or create a certain number of particles on a per frame basis.
  • By Total Number of Particles numParticles - Specify the total number of particles that should be simulated in this system. All the particles are spawned at the exact same time.
  • By Particles per Frame perFrame - Specify how many particles should be created per frame. The total number of particles will be a function between the number in Birth multiplied by the specified Life (in seconds) and the Lifevariance (also in seconds)
Particles Particles - The total number of particles being simulated in the system. Only available when the Create parameter is set to "By Total Number of Particles".

Birth Birth - The number of particles spawned each frame. Only available when the Create parameter is set to "By Particles per Frame".

Life Life - The number of seconds a particle will be alive.

Lifevariance Lifevariance - A delta number of seconds that will be added or subtracted from the expected lifetime, specified in the Life parameter, of a particle.

Size Type Sizetype - - Select how the particle size is being determined. While the types "Constant" and "Random" are specified with below Particle Size Min and Particle Size Max parameters, the remaining options take particle attributes like "Age" or "Velocity" to lookup the size via a CHOP specified in the Size Lookup parameter. When choosing any of the four "Effector" types, the index into the lookup will be fetched from the "Effector" input to the particle system.
  • Constant constant - The size of the particle is being set via the Particle Size Min parameter.
  • Random random - The size of the particle is a random value between the Particle Size Min and Particle Size Max parameters.
  • Age age - The size of the particle is determined by the CHOP referenced in the Size Lookup parameter with the particle's age as a normalized index into the CHOP.
  • Velocity velocity - The size of the particle is determined by the CHOP referenced in the Size Lookup parameter with the particle's velocity as a normalized index into the CHOP. Use the Velocity Remap parameter to scale velocity to a unit value.
  • Effector R er - The size of the particle is determined by the CHOP referenced in the Size Lookup parameter with the value of the "effector" input texture's red channel at the particles index position as a normalized index into the CHOP.
  • Effector G eg - The size of the particle is determined by the CHOP referenced in the Size Lookup parameter with the value of the "effector" input texture's green channel at the particles index position as a normalized index into the CHOP.
  • Effector B eb - The size of the particle is determined by the CHOP referenced in the Size Lookup parameter with the value of the "effector" input texture's blue channel at the particles index position as a normalized index into the CHOP.
  • Effector A ea - The size of the particle is determined by the CHOP referenced in the Size Lookup parameter with the value of the "effector" input texture's alpha channel at the particles index position as a normalized index into the CHOP.
Particle Size Min Particlesizemin - Specify the Size of the particle. Only available when the Size Type parameter is set to "Constant" or "Random".

Particle Size Max Particlesizemax - Specify the maximum size of the particle. Only available when the Size Type parameter is set to "Random".

Size Lookup (CHOP) Sizelookup - A reference to a CHOP containing a single channel called "size" which is used as a lookup when the Size Type parameter is set to "Age", "Velocity" or one of the "Effector"s.

Pos Limit Plane Limitpos - - The Pos Limit Plane and Neg Limit Plane parameters describe a bounding box used for the Hit Behaviour of the particle.
  • Pos Limit Plane Limitposx -
  • Pos Limit Plane Limitposy -
  • Pos Limit Plane Limitposz -
Neg Limit Plane Limitneg - - The Neg Limit Plane and Pos Limit Plane parameters describe a bounding box used for the Hit Behaviour of the particle.
  • Neg Limit Plane Limitnegx -
  • Neg Limit Plane Limitnegy -
  • Neg Limit Plane Limitnegz -
Hit Behaviour Hit - - Specify what the particle should do when leaving the bounding box described via the Pos Limit Plane and Neg Limit Plane parameters.
  • None none - The bounding box is ignored.
  • Die on Contact die - The particle dies at the moment it leaves the bounding box.
  • Bounce on Contact bounce - The particle bounces when trying to leave the bounding box.
  • Avoid Bounds avoid - The particle tries to avoid the edges of the bounding box.
  • Stick stick - The particle will stick on the bounding box.
Avoid Factor Avoidfactor - Only available when the Hit Behaviour parameter is set to "Avoid Bounds". This currently controls how much the particle will try to avoid the bounds. Note: This will be deprecated.

Display Bounds Displaybounds - When set to "On" will render the bounding box in the final render.

Mass Mass - The particle's mass which has an influence on the forces. Currently not implemented.

Drag Drag - Drag describes the loss of velocity over time for a particle.

Max Velocity Maxvelocity - Clamp the maximum velocity of a particle.

System Max Velocity Systemmaxvelocity - The current maximum velocity of any particle in the system. This is read only and can be used in the Velocity Remap parameter.

Velocity Remap Remapvelocity - - When using a particle's velocity in conjunction with lookup curves for the size, color or forces attributes, the remap parameter can help to normalize the velocity value for lookups into the curves. One would look at the System Max Velocity parameter and use it in the second parameter to normalize all particles velocities.
  • Velocity Remap Remapvelocity1 -
  • Velocity Remap Remapvelocity2 -
Speed Speed - Can be used to speed up or slow down the simulation. This can have unwanted effects when driving parameters with time dependent values.

Reset Reset - Reset the particle system.


Parameters - Forces Page

Inital Velocity Inital - - The contribution of the initial velocity to the particle's velocity when spawned. The initial velocity is derived from the Particle Source or "particleVelocity" input to the component.
  • Inital Velocity Initalx -
  • Inital Velocity Initaly -
  • Inital Velocity Initalz -
Initial Magnitude Initialmagnitude - A multiplier to the Initial Velocity parameter.

Initial Turbulence Initialturbulence - Adds turbulence to the initial velocity.

External Type Externaltype - - Select how the external force is being determined. While the type "Constant" is specified with below parameters, the remaining options take particle attributes like "Age" or "Velocity" to lookup these values via a CHOP specified in the External Lookup parameter. When choosing any of the four "Effector" types, the index into the lookup will be fetched from the "Effector" input to the particle system. See the External Lookup parameter below for more information on the required CHOP channels.
  • Constant constant - The external force is being calculated using the External, External Magnitude, and External Variance parameters.
  • Age age - The external force is determined by the CHOP referenced in the External Lookup parameter with the particle's age as a normalized index into the CHOP.
  • Velocity velocity - The external force is determined by the CHOP referenced in the External Lookup parameter with the particle's velocity as a normalized index into the CHOP. Use the Velocity Remap parameter to scale velocity to a unit value.
  • Effector R er - The external force is determined by the CHOP referenced in the External Lookup parameter with the value of the "effector" input texture's red channel at the particles index position as a normalized index into the CHOP.
  • Effector G eg - The external force is determined by the CHOP referenced in the External Lookup parameter with the value of the "effector" input texture's green channel at the particles index position as a normalized index into the CHOP.
  • Effector B eb - The external force is determined by the CHOP referenced in the External Lookup parameter with the value of the "effector" input texture's blue channel at the particles index position as a normalized index into the CHOP.
  • Effector A ea - The external force is determined by the CHOP referenced in the External Lookup parameter with the value of the "effector" input texture's alpha channel at the particles index position as a normalized index into the CHOP.
External External - - The contribution of the external force to the particle's velocity. An External Force is a constant increase in velocity per frame, not unlike gravity.
  • External Force Externalx -
  • External Force Externaly -
  • External Force Externalz -
External Magnitude Externalmag - A multiplier to the External Force parameter.

External Variance Externalvariance - An additional turbulence to the External Force.

External Lookup (CHOP) Externallookup - A reference to a CHOP containing 5 channels that represent the forces values: "externalx", "externaly", "externalz", "externalmag", and "externalvariance". Any missing channel will be assumed to have the value 0.

Wind Type Windtype - - Select how the wind force is being determined. While the type "Constant" is specified with below parameters, the remaining options take particle attributes like "Age" or "Velocity" to lookup these values via a CHOP specified in the Wind Lookup parameter. When choosing any of the four "Effector" types, the index into the lookup will be fetched from the "Effector" input to the particle system. See the Wind Lookup parameter below for more information on the required CHOP channels.
  • Constant constant - The wind force is being calculated using the Wind, Wind Magnitude, and Wind Variance parameters.
  • Age age - The wind force is determined by the CHOP referenced in the Wind Lookup parameter with the particle's age as a normalized index into the CHOP.
  • Velocity velocity - The wind force is determined by the CHOP referenced in the Wind Lookup parameter with the particle's velocity as a normalized index into the CHOP. Use the Velocity Remap parameter to scale velocity to a unit value.
  • Effector R er - The wind force is determined by the CHOP referenced in the Wind Lookup parameter with the value of the "effector" input texture's red channel at the particles index position as a normalized index into the CHOP.
  • Effector G eg - The wind force is determined by the CHOP referenced in the Wind Lookup parameter with the value of the "effector" input texture's green channel at the particles index position as a normalized index into the CHOP.
  • Effector B eb - The wind force is determined by the CHOP referenced in the Wind Lookup parameter with the value of the "effector" input texture's blue channel at the particles index position as a normalized index into the CHOP.
  • Effector A ea - The wind force is determined by the CHOP referenced in the Wind Lookup parameter with the value of the "effector" input texture's alpha channel at the particles index position as a normalized index into the CHOP.
Wind Wind - - The contribution of the wind force to the particle's velocity. A Wind Force is a constant increase in velocity per frame until the wind's velocity has been reached.
  • Wind Windx -
  • Wind Windy -
  • Wind Windz -
Wind Magnitude Windmag - A multiplier to the Wind parameter.

Wind Variance Windvariance - An additional turbulence to the Wind Force.

Wind Lookup (CHOP) Windlookup - A reference to a CHOP containing 5 channels that represent the forces values: "windx", "windy", "windz", "windmag", and "windvariance". Any missing channel will be assumed to have the value 0.

Turbulence Type Turbtype - - Select how the turbulence force is being determined. While the type "Constant" is specified with below parameters, the remaining options take particle attributes like "Age" or "Velocity" to lookup these values via a CHOP specified in the Turbulence Lookup parameter. When choosing any of the four "Effector" types, the index into the lookup will be fetched from the "Effector" input to the particle system. See the Turbulence Lookup parameter below for more information on the required CHOP channels.
  • Constant constant - The turbulence is being calculated using the Turbulence, Turbulence Magnitude, Turbulence Period, Turbulence Seed, and Turbulence Speed parameters.
  • Age age - The turbulence is determined by the CHOP referenced in the Turbulence Lookup parameter with the particle's age as a normalized index into the CHOP.
  • Velocity velocity - The turbulence is determined by the CHOP referenced in the Turbulence Lookup parameter with the particle's velocity as a normalized index into the CHOP. Use the Velocity Remap parameter to scale velocity to a unit value.
  • Effector R er - The turbulence is determined by the CHOP referenced in the Turbulence Lookup parameter with the value of the "effector" input texture's red channel at the particles index position as a normalized index into the CHOP.
  • Effector G eg - The turbulence is determined by the CHOP referenced in the Turbulence Lookup parameter with the value of the "effector" input texture's green channel at the particles index position as a normalized index into the CHOP.
  • Effector B eb - The turbulence is determined by the CHOP referenced in the Turbulence Lookup parameter with the value of the "effector" input texture's blue channel at the particles index position as a normalized index into the CHOP.
  • Effector A ea - The turbulence is determined by the CHOP referenced in the Turbulence Lookup parameter with the value of the "effector" input texture's alpha channel at the particles index position as a normalized index into the CHOP.
Turbulence Turb - - The contribution of the turbulence to the particle's velocity. A turbulence is a position based lookup into a threedimensional noisefield defined with below parameters.
  • Turbulence Turbx -
  • Turbulence Turby -
  • Turbulence Turbz -
Turbulence Magnitude Turbmag - A multiplier to the Turbulence parameter.

Turbulence Period Turbperiod - The period of the noise function.

Turbulence Seed Turbseed - The seed of the noise function.

Turbulence Speed Turbtrans - - This is currently an offset of the xyz lookup position in the noise field. When specifying a constant number the noise will be constant as well.
  • Turbulence Speed Turbtransx -
  • Turbulence Speed Turbtransy -
  • Turbulence Speed Turbtransz -
Turbulence Lookup (CHOP) Turblookup - A reference to a CHOP containing 9 channels that represent the force values: "turbx", "turby", "turbz", "turbmag", "turbperiod", "turbseed", "turbtransx", "turbtransy", and "turbtransz". Any missing channel will be assumed to have the value 0.

Extra Forces (CHOP) Extraforceschop - Via a CHOP containing 9 channels, multiple positional forces of the types "Radial", "Axial", "Vortex", and "Spiral" can be defined. These forces try to mimick the behaviour of the Force SOP with some differences: The original SOP takes a Metaball as an input and can apply all 4 forces at the same position with "Vortex" and "Spiral" interacting with each other. This implementation treats the force source as a wyvill type metaball and "Vortex" and "Spiral" do not interact but are calculated seperately.

Multiple forces can be specified with a multisample CHOP where each sample represents a unique force field.

The 9 required channels are: "forceposx", "forceposy", "forceposz", "forceradius", "forceamount", "forcetype", "forcedirx", "forcediry", and "forcedirz". The value of "forcetype" can be one of:

  • 0: Radial force
  • 1: Axial force
  • 2: Vortex force and
  • 3: Spiral force

The "forcedir*" channels are only required for the directional forces "Axial", "Vortex", and "Spiral". See the Force SOP for more information on these different force types. Any missing channel will be assumed to have the value 0.

Display Extra Forces Displayextraforces - Displays a wireframe sphere in place of any of the extra forces whose "forceAmount" value is greater than 0.

Optical Flow Magnitude Optflowmag - A multiplier to the force values retrieved from the Optical Flow input.

Optical Flow Remap Optflowremap - - Remap Size parameter for the Optical Flow input. To sample from the Optical Flow texture, the x and y positions of the particles are used. As these most likely extend beyond 0-1, specify here the maximum bounds of the particles in either direction. For example for a particle system where some particles are located at x=-10, y=5, set the remap parameter to 10 and 5 respectively. This means that any particle's position in the range of x: -10 to 10 and y: -5 to 5 will be remapped to 0 to 1 as a lookup into the Optical Flow texture.
  • Inputsize Remap Inputsizeremapx -
  • Inputsize Remap Inputsizeremapy -
Rotation Type Rotationtype - - Select what kind of rotation the particles are subjected to. Note: this only has an effect on Materials choosed on the "Material" paramter page, that are not of the Line MAT type.
  • None none - There is no rotation. The particles will be oriented to the XY plane.
  • Velocity velocity - The particles are oriented towards the velocity vector of the particle. Especially in conjunction with a phong material, this can give the impression of shading.
  • Face Camera billboard - All particles are rotated towards the camera.
  • Continous continous - Particles are rotating continiously.
Rotation Speed Rotationspeed - - Specify the speed at which particles are rotating. A speed of 1 will rotate the partice by one degree per frame.
  • Rotation Speed Rotationspeedx -
  • Rotation Speed Rotationspeedy -
  • Rotation Speed Rotationspeedz -
Randomize Initial Rotation Rotationrandom - Toggle on to have the particles spawned with a random rotation.

Rotation Init Rotationinit - - Specify the rotation of spawned particles. The rotation is represented as a vector.
  • Rotation Init Rotationinitx -
  • Rotation Init Rotationinity -
  • Rotation Init Rotationinitz -


Parameters - Render Page

Resolution Resolution - - Specify the resolution of the final render of the particle system.
  • Resolution Resolutionw -
  • Resolution Resolutionh -
Fade In Fadein - Specify the time in seconds a particle fades in after being spawned.

Fade Out Fadeout - Specify the time in seconds a particle fades out before dying.

Color Type Colortype - - Select how the particle color is being determined. While the types "Constant" and "Random" are specified with below Color 1 and Color 2 parameters, and "Velocity" as well as "Turbulence" are driven by the respective particle attributes, the remaining options take particle attributes like "Age" or "Velocity" to lookup the size via a CHOP specified in the Color Lookup parameter. When choosing any of the four "Effector" types, the index into the lookup will be fetched from the "Effector" input to the particle system.
  • Constant constant - The particle's color is specified via the Color 1parameter.
  • Random random - The particle's color is randomly picked between the Color 1 and Color2 parameters.
  • Velocity velocity - The particle's color is the same value as the particles velocity.
  • Turbulence turb - The particle's color is the same as the value of the turbulence force it might be traversing.
  • Age (Lookup) ageL - The color of the particle is determined by the CHOP referenced in the Color Lookup parameter with the particle's age as a normalized index into the CHOP.
  • Velocity (Lookup) velocityL - The color of the particle is determined by the CHOP referenced in the Color Lookup parameter with the particle's velocity as a normalized index into the CHOP. Use the Velocity Remap parameter to scale velocity to a unit value.
  • Effector R er - The color of the particle is determined by the CHOP referenced in the Color Lookup parameter with the value of the "effector" input texture's red channel at the particles index position as a normalized index into the CHOP.
  • Effector G eg - The color of the particle is determined by the CHOP referenced in the Color Lookup parameter with the value of the "effector" input texture's green channel at the particles index position as a normalized index into the CHOP.
  • Effector B eb - The color of the particle is determined by the CHOP referenced in the Color Lookup parameter with the value of the "effector" input texture's blue channel at the particles index position as a normalized index into the CHOP.
  • Effector A ea - The color of the particle is determined by the CHOP referenced in the Color Lookup parameter with the value of the "effector" input texture's alpha channel at the particles index position as a normalized index into the CHOP.
Color 1 Color1 - - The color of the particle if Color Type is set to "Constant" or "Random"
  • Color 1 Color1r -
  • Color 1 Color1g -
  • Color 1 Color1b -
  • Color 1 Color1a -
Color 2 Color2 - - If Color Type is set to "Random", the particle's color will be a random value between Color 1 and this parameter.
  • Color 2 Color2r -
  • Color 2 Color2g -
  • Color 2 Color2b -
  • Color 2 Color2a -
Color Lookup (CHOP) Colorlookup - A reference to a CHOP containing 3 channels that represent the color values: "r", "g", "b", and "a". Any missing channel will be assumed to have the value 1.

Camera Camera - Specify a custom Camera COMP to render the particle system.

Compositing Compositing - -
  • Alpha To Coverage coverage -
  • Discard Alpha discard -
  • Order-Independent Transparency independent -
  • No Depth Test nodepth -
Transparancy Layers Transparancylayers -

Alpha Threshold Alphathreshold -


Parameters - Material Page

Material Material - - Select which material type should be used for the particle system render. For the types "Constant" and "Phong" a texture can be selected or specified.
  • Constant constant - The particle system is rendered with a Constant MAT
  • Phong phong - The particle system is rendered with a Phong MAT
  • Line line - The particle system is rendered with a Line MAT
  • custom custom - A custom material can be specified via the Custom Material parameter.
Custom Material Custommaterial - Reference to a MAT to be used as the material for rendering the particle system.

Texture Texture - - In case of selecting a "Constant" or "Phong" material, a texture can be selected that will be used for shading the particle.
  • Square square - A simple square resulting in a constant color.
  • Circle circle - A circle texture.
  • Snow snow - a snowflake image.
  • Leaf leaf - A 2D Texture Array of 5 different leafs.
  • Character char - A 2D Texture Array of 60 different charachters.
  • Custom custom - Specify a custom texture in the Particle Texture Map parameter which can also be of the type 2D Texture Array.
Particle Texture Map Particlemap - A reference to a TOP containing the texture to be used on the particles.


Parameters - Particle Source Page

Interpolate Source Point Position Interpolatepoint - When using a low resolution source object, toggling this parameter will spawn particles from interpolated positions of the original source.

Num Points Numpoints - Specify the number of points the source shape should have.

Shape Shape - - Select what type of shape the source should be.
  • Sphere sphere - A sphere volume.
  • Box box - A box volume.
  • Torus torus - A torus volume.
  • Sphere Surface spheresurf - A sphere surface.
  • Box Surface boxsurf - A box surface.
  • Torus Surface torussurf - A torus surface.
  • Rectangle rectangle - A rectangle.
  • Circle circle - A circle. (Only points along the circle are created.)
  • Disc disc - A disc. (There are also points inside the circle.)
  • Line line - A line defined by a start and an endpoint.
Orientation Orientation - -
  • XY Plane xy - Specifies the orientation of the shape. This is useful for type: "Torus", "Torus Surface", "Rectangle", "Circle", and "Disc".
  • YZ Plane yz -
  • ZX Plane zx -
Size Shapesize - - The size of the generated shape when type is "Box", "Box Surface", or "Rectangle".
  • Size Shapesizex -
  • Size Shapesizey -
  • Size Shapesizez -
Radius Radius - - The radius of the generated shape when type is "Sphere", "Torus", "Sphere Surface", "Torus Surface", "Circle", or "Disc"
  • Radius Radiusx -
  • Radius Radiusy -
  • Radius Radiusz -
Point A Pa - - Starting point of a shape if type is "Line".
  • Point A Pax -
  • Point A Pay -
  • Point A Paz -
Point B Pb - - End point of a shape if type is "Line".
  • Point B Pbx -
  • Point B Pby -
  • Point B Pbz -
Random Seed Randomseed - Random seed of the point order.

Transform Transform -

Transform Order Xord - -
  • Scale Rotate Translate srt -
  • Scale Translate Rotate str -
  • Rotate Scale Translate rst -
  • Rotate Translate Scale rts -
  • Translate Scale Rotate tsr -
  • Translate Rotate Scale trs -
Rotate Order Rord - -
  • Rx Ry Rz xyz -
  • Rx Rz Ry xzy -
  • Ry Rx Rz yxz -
  • Ry Rz Rx yzx -
  • Rz Rx Ry zxy -
  • Rz Ry Rx zyx -
Translate T - -
  • Translate Tx -
  • Translate Ty -
  • Translate Tz -
Rotate R - -
  • Rotate Rx -
  • Rotate Ry -
  • Rotate Rz -
Scale S - -
  • Scale Sx -
  • Scale Sy -
  • Scale Sz -
Pivot P - -
  • Pivot Px -
  • Pivot Py -
  • Pivot Pz -
Show Emitter Source Showsource -


Parameters - About Page

Help Help -

Version Version -


Operator Inputs

  • Input 0: particleSource - TOP containing all positions of the particle source. R, G, B channels correspond to X, Y, Z positions respectively.
  • Input 1: particleSourceColor - TOP containing color values of the particle source.
  • Input 2: particleVelocity - TOP containing the initial velocity values for each particle. R, G, B channels correspond to the velocity in X, Y, Z respectively.
  • Input 2: opticalFlow - TOP containing a texture where the values in the red and green channels are interpreted as force vectors in for the particles in the x and y directions respectively. A source can be an optical flow operator.
  • Input 3: effector - Input for a texture used in any of the Size, Force or Color Lookups. For example the z component of the particleGPU's position output, could be used as a lookup for the particle color.


Operator Outputs

  • Output 0 - The render output of the particle system.
  • Output 1 - The positions of all particles.
  • Output 2 - The channels of the included Initialize / Start Component.

TouchDesigner Build: