CParticleEvolver Rotation

From PopcornFX
Jump to: navigation, search

Rotation evolver Last update: v1.10.0- Main page : Particle evolvers Particle evolvers


The rotation evolver is a helper to handle rotating particles. It can rotate particles in 2D (screenspace), or along a 3D rotation axis.


Rotation evolver Node properties

Field name Default value Description
Rotation evolver General
RotationMode Screenspace
  • Screenspace : rotates in screen-space, uses the 'ScreenspaceRotationCoeff' and 'AxialRotationSpeedField' fields
  • Axial : fakes screenspace rotation along an arbitrary axis. useful for things like smoke columns where the rotation is view-dependent. It uses 'AxialRotationSpeedField' to find the field containing the axis.
ScreenspaceRotationCoeff 1.0 Scale applied to the values in 'ScalarRotationSpeedField', allows quick tweaking of the rotation speeds.
Rotation evolver Field customization
RotationAngleField "Rotation" If this field is declared as a <float>, it will be used as the particle rotation angle in radians, and modified by the evolver. Used in 'Screenspace' mode.
ScalarRotationSpeedField "ScalarRotationSpeed" If this field is declared as a <float>, it will be used as the particle rotation speed in radians per second. Used in 'Screenspace' mode.
PositionField "Position" If this field is declared as a <float3>, it will be used as the particle position. Used in 'Axial' mode.
AxialRotationSpeedField "RotationSpeed" If this field is declared as a <float3>, it will be used as the particle 3D rotation axis. The length of the vector is treated as the rotation speed in radians per second. Used in 'Axial' mode.
Rotation evolver properties


Rotation evolver Auto-fields

The rotation evolver automatically creates, if they don't exist, the following particle fields:

Name Type Footprint TransformMode self access to field
Rotation float 4 bytes none read/write
if 'RotationMode' is set to 'Screenspace', and the 'ScalarRotationSpeedField' field isn't empty:
'ScalarRotationSpeedField' float 4 bytes none read/write
if 'RotationMode' is set to 'Axial', and the 'AxialRotationSpeedField' field isn't empty:
'AxialRotationSpeedField' float3 16 bytes none read/write