- Main page : Particle evolvers
The physics evolver is the most frequently found evolver in a standard particle evolve state. It is the main dynamics evolver, that will make your particles move with velocity, acceleration, friction, force-fields, velocity fields, and scene interactions (collisions and impulse distribution in your own physical simulation, allowing you to create particles that will actually push your own physics objects around in your scene)
Node properties
| Field name
|
Default value
|
Description
|
General
|
|
|
| FilterID
|
0
|
Key given to the hooked collision subsystem
|
Dynamics
|
|
|
| ConstantAcceleration
|
{0,0,0}
|
Typically used for gravity or some upward force
|
| Mass
|
1
|
Particle mass
|
| SolidFriction
|
0
|
Static friction with a hard movement cutoff. avoid using this, prefer the fluid friction below
|
| FluidFriction
|
0
|
fluid friction, velocity decreases towards zero similarly to exponential damping.
|
| AerodynamicDrag
|
0
|
realistic aerodynamic drag, dependent on the squared velocity
|
| VelocityFieldSampler
|
|
Name of sampler to use as a velocity field. Typically a CParticleSamplerProceduralTurbulence
|
Collisions
|
|
|
| WorldInteractionMode
|
None
|
-
None : No collisions with world
-
OneWay : Particles collide with world, world repels particles
-
TwoWay : Particles collide with world, world repels particles, particles apply forces on world.
|
| DieOnContact
|
no
|
When checked, particle dies when it hits something. Active only if WorldInteractionMode is not set to 'None'.
|
| WeightBounceWithNdotV
|
no
|
Active only if WorldInteractionMode is not set to 'None'.
|
| BounceRestitution
|
0.5
|
Determines how much the particle will bounce back. 0: doesn't bounce, 1: full elastic bounce. Active only if WorldInteractionMode is not set to 'None'.
range : [0, 1]
|
| BounceOffset
|
0.002
|
Offset along the contact the particle is displaced by. useful to avoid collision imprecisions with low bounce restitutions, or large bounce counts. Active only if WorldInteractionMode is not set to 'None'.
|
| BouncesBeforeDeath
|
1
|
Number of collisions the particle will handle before killing itself. 0 means infinite bounces. Active only if WorldInteractionMode is not set to 'None'.
range : [0, 127]
|
CollisionQueryType (EXPERIMENTAL)
|
Raytrace
|
Tells the runtime which kind of collision queries to perform with the world. Active only if WorldInteractionMode is not set to 'None'.
-
Raytrace : when moving, the particles will trace a ray in the world along their movement to see if they collide. This assumes the particle is an infinitely small point.
-
SphereSweep : more compute-intensive. When moving, the particles will be treated as a sphere swept into the world, and produce more realistic collisions.
|
SweepRadiusFactor (EXPERIMENTAL)
|
1.0f
|
Factor to apply to the particle sweep radius field, controls how large the particle appears to the collision system.
|
SweepRadiusField (EXPERIMENTAL)
|
"Size"
|
Name of the field the physics evolver should use as the sweep radius of the particles. If empty, uses 'SweepRadiusFactor' as a constant sweep radius
|
|
|
Auto-fields
The physics evolver automatically creates, if they don't exist, the following particle fields:
| Name
|
Type
|
Footprint
|
TransformMode
|
self access to field
|
| Position |
float3 |
16 bytes |
Transform |
read/write
|
| Velocity |
float3 |
16 bytes |
Rotate |
read/write
|
if 'WorldInteractionMode' != None, the following fields are also added:
|
| PrevPosition |
float3 |
16 bytes |
none |
read/write
|
| CollisionFlags |
u8 |
1 bytes |
none |
read/write
|