Particle System
Last Updated Time: 11/13/2023
Overview
A Particle System can simulate and render many small images called particles to produce visual effects. Each particle primitive in the system has properties such as shape, size, color, Alpha(transparency), motion speed and direction, lifetime, etc. The system simulates each particle collectively to produce the complete effect. The particle system is very helpful when it comes to dynamic objects such as flames, smoke, etc.
Particle Editor
The Flexi Engine has a built-in Particle Editor.
Creating Particles
In the Resource Preview window, right-click on the blank space to bring up the menu. Then click Single Particle to create a particle file.
Opening the Particle Editor
Double-click the newly created particle file to open the Particle Editor.
No. | Description |
---|---|
1 | Menu Bar |
2 | Toolbar |
3 | Preview Window |
4 | Property Panel |
5 | Animation Curve Control Panel |
Properties
The Particle Property panel controls the various properties of the particles to get different effects as needed. The most important ones are Particle Property and Scene Settings.
Particle Properties
- Renderer
Set the Renderer properties of a single facet.
Property | Description |
---|---|
Map File | The base texture of a single particle facet. |
Refraction Map | Refraction effect map. |
Refraction Intensity | Intensity of refraction effect. |
Display Type | Display types can be selected according to actual use. |
Depth Bias | Depth offset coefficient when rendering particles. |
Billboard Mode | Set billboard modes, including Default Vertical Mode (Billboard), Y-axis Rotation Mode (Billboard_Y), Leaf Mode and None. |
Axis Deviation | Set the axial random coefficient of the particle rotation axis. |
Particle Calculation Mode | Modes for calculating particle effects, including Auto Mode, CPU Mode, GPU Mode and Global Mode. |
Particle Color | Add color to a single particle. |
Particle Brightness | Particle brightness (self-illuminated). |
Random Color | Randomly read the color on the texture. |
Color Animation | Particles have random colors as they move. |
Accept Dynamic Illumination | Whether to accept dynamic illumination on particle effects. |
Light Type | Simple/Standard. |
Transmittance Intensity | Transmittance intensity on particles. The larger the value is, the more obvious specular on the particle is; the smaller the value is, the less obvious the specular is. |
- Texture Sheet Animation
Set the properties of the Texture Sheet Animation maps.
Property | Description |
---|---|
Sequence Frame Amount | The amount of sequence frames in a texture file. |
Start Sequence Frame Number | The frame index in the texture file where the sequence frame starts. |
Sequence Frame Row Number | The row numbers of sequence frames in a texture file. |
Sequence Frame Column Number | The column numbers of sequence frames in a texture file. |
Frame Loop | Whether to enable locking at 30fps for rendering. |
- Motion
Set the Motion properties of the particles.
Property | Description |
---|---|
Particle Speed | The moving speed of particles. |
Particle Speed Offset | The random disturbances of particle speed. |
Random Direction | The direction of random disturbances. |
Particle Jitter Strength | The strength of particles’ random jittering. |
Particle Jitter Speed | The speed of particles’ random jittering. |
Gravity Influence | The gravity influence on particles. |
- Emission
Set the Emission properties of the particles.
Property | Description |
---|---|
Particle Emission Axial | The direction of the emitted particles. |
Repeated Emission | Whether to repeat emission. |
The Number Emitted At A Time | The number of particles emitted at a time. |
Emission Interval Time | The interval time between each emission, only available while setting Repeated Emission as true. |
Emission Interval Variate | The random disturbances during per emission interval. |
Keep Binding Location | Specify whether the emitter keeps the position of being bound to the model in the Effect Editor. |
Keep Binding Direction | Specify whether the particle keeps the emission direction in the Effect Editor. |
Keep Previous Emission Direction | Specify whether the emitter keeps the direction of the emitted particles in the Effect Editor. |
Scale Not Affect Speed | Specify whether the emitter keeps the speed of the emitted particles unaffected by scaling. |
Keep Binding Emitter Direction | Specify whether the emitter keeps the emission direction in the Effect Editor. |
Emitter Shape | The emission shape of a particle emitter. |
Emit Angle | Specify the angle range of particles emitted by the emitter (only for emitters with Sphere and Cone shapes). |
Emit Radius | Specify the radius range of particles emitted by the emitter (only for emitters with Sphere, Box, Circle shapes). |
Emit Thickness | Specify the thickness of particles emitted by the emitter (only for emitters with Sphere, Cone, Circle shapes). |
Emitter Scale X | Specify the scaling of emitted particles in the Direction X. |
Emitter Scale Y | Specify the scaling of emitted particles in the Direction Y. |
Emitter Scale Z | Specify the scaling of emitted particles in the Direction Z. |
Emit Rand Pos | Random disturbances in the position of particles emitted by the emitter. |
Bounding Box Size X | Set the display range X for particles in the scene, beyond the bounding box is no longer displayed. |
Bounding Box Size Y | Set the display range Y for particles in the scene, beyond the bounding box is no longer displayed. |
Bounding Box Size Z | Set the display range Z for particles in the scene, beyond the bounding box is no longer displayed. |
- Bounds
Customize the size of the particle bounding box.
Property | Description |
---|---|
Use Fixed Relative Bounding Box | Whether to use fixed relative bounding boxes. |
Min Bounding Box X | The X coordinate value of the minimum point. |
Min Bounding Box Y | The Y coordinate value of the minimum point. |
Min Bounding Box Z | The Z coordinate value of the minimum point. |
Max Bounding Box X | The X coordinate value of the maximum point. |
Max Bounding Box Y | The Y coordinate value of the maximum point. |
Max Bounding Box Z | The Z coordinate value of the maximum point. |
- Particle System
Set the properties of the Particle System.
Property | Description |
---|---|
Vector Field | Vector field file, which describes a force field with a range within which particles will be affected by the force field (Please refer to Particles and Vector Fields for details). |
Vector Field Strength | Vector field strength with its value ranges from 0.0 to10.0. |
Play Speed | Play speed of particle motion. |
Particle Amount | The amount of particles emitted at a time. |
Lifetime | The lifetime of a particle. |
Lifetime Deviation | If it is greater than the Particle Duration, this value is the Particle Duration; if the difference between the Lifetime and the Lifetime Deviation is less than the Trail Time, the Trail Time is the difference between the two. |
Particle Duration | The duration time of the particle; it can be longer than the lifetime. |
Particle Size | The initial size of the particle. |
Particle Size Offset | Random disturbances of particle size; the higher the value, the stronger the disturbances. |
Aspect Ratio | Set the aspect ratio of the particle facet; the higher the value, the longer the facet. |
Angle Deviation | Set the angle deviation of the particle itself. |
Particle Rotation | Set the particle rotation coefficient. When the value is positive, the particle rotates counterclockwise, and when it is negative, the particle rotates clockwise (Note: After the setting is completed, the particle will start to rotate only after keying a frame in the Particle Rotation Curve Editing panel). |
Particle Rotation Offset | Set the rotation angle offset of the particle itself. |
Particle Rotation Random Direction | Set the random coefficient of particle rotation direction. |
Recycle Mark | Particles will be emitted towards the center of the emitter after it is enabled. |
Delay Unload | Delay deleting particles; particles can be deleted only when their visibility is 0. |
Jet Model | Load the jet model (i.e. rendering a single particle as a model). |
- Wind
Set the Wind properties of the Particle System.
Property | Description |
---|---|
Wind Influence | Set the wind influence on particles; If the Wind Influence is 0, the Gravity Influence is also 0. |
Wind Influence Deviation | Set the deviation of the wind influence on particles. |
Rise Velocity | Set the rise velocity of particles. |
- Collision
Set the Collision properties of the particles in the scene.
Property | Description |
---|---|
Min Size | Set the minimum size of particles. |
Landing Height | Set the landing height of particles. |
- Attractor
Set the properties of the Attractor.
Property | Description |
---|---|
Attractor Speed | Set the speed attracted by the attractor. |
Attractor Type | None: none; Self: emitter itself; Point: specified attraction point; Line: specified attraction position segment. |
Particle Revolution Speed | Set the speed of particles while revolving around the point of attraction. |
Particle Revolution Speed Offset | Set the speed offset of particles while revolving around the point of attraction. |
- Trails
Set the properties of the particle Trails.
Property | Description |
---|---|
Generate Trail | Whether to generate trails. |
Trail Time | Set the time of trails. |
Trail Segment Number | Set the number of trail subdivisions. |
Trail History Alpha | Whether to use the history Alpha value. |
Trail History Color | Whether to use the history color value. |
Trail History Size | Whether to use the history particle size. |
Modify Trail Size | Whether to modify the trail size of the particle. |
- Advanced
Set the Advanced properties of the particles.
Property | Description |
---|---|
Roughness | Set the roughness of the particle facet. |
Metallic | Set the metallic of the particle facet. |
Normal Map | Set the normal map of the particle facet. |
Scene Settings
Property | Description |
---|---|
Illumination | Sun parameters. |
Environment | Environment global illumination parameters. |
Camera | Camera parameters. |
Wind | Global wind parameters. |
SSDO Effect | Ambient occlusion parameters. |
Anti-aliasing | Anti-aliasing effect. |
Bloom | Bloom effect. |
Animation Curves
The change forms of particle effects in the dynamic process can be controlled in the Animation Curve Control panel.
Basic Editing
Select a particle effect on the left side of the Animation Curve Control panel to enter its Curve Editing panel. Double-click on the blank space in the curve editing area to add a new keyframe.
Delete keyframes. Select the keyframe as needed and then press the Delete key to delete it. Multiple keyframes can be selected to delete at a time. Or click the Delete button in the panel, and select the keyframes as needed in the pop-up Delete Key window (with the Time of each keyframe representing itself). Then click the OK button.
Move keyframes. Select the keyframe as needed and hold down the left mouse button to move it.
Modify keyframes. The Time and Value of all current keyframes which can be modified directly by entering numbers in their input boxes are displayed above the curve editing area.
Click the Parameter button to bring up the Keyframe Parameter window, which shows information about all keyframes on the current curve.
Particle Visibility
The change of the particle visibility during its lifetime can be set in Particle Visibility.
Click Particle Visibility on the left side of the Animation Curve Control panel to open the Particle Visibility Curve Editing panel. A default linear curve will appear in this area.
There are two keyframes on the current curve with the Time and Value of each being displayed above the panel. The value of the curve ranges from 1 to 0, where a value of 1 means that the particle is fully visible, and a value of 0 means that the particle is invisible.
Particle Size
The change of the particle size during its lifetime can be set in Particle Size.
Click Particle Size on the left side of the Animation Curve Control panel to open the Particle Size Curve Editing panel. A default linear curve will appear in this area.
There are two keyframes on the current curve with the Time and Value of each being displayed above the panel. The value of the curve ranges from 0 to 1, where a value of 0 represents the minimum size of the current particle during its lifetime, and a value of 1 represents its maximum size during the lifetime (i.e. the property Particle Size). For a particle whose size is changing dynamically, the size at different periods during its lifetime is equal to the Particle Size in the particle properties multiplied by the corresponding Value.
Particle Speed
The change of the particle speed during its lifetime can be set in Particle Speed.
Click Particle Speed on the left side of the Animation Curve Control panel to open the Particle Speed Curve Editing panel. A default linear curve will appear in this area.
There are two keyframes on the current curve with the Time and Value of each being displayed above the panel. The value of the curve ranges from 0 to 0.02, where a value of 0 represents the slowest speed of the current particle during its lifetime (i.e. particle rest), and a value of 0.02 represents its fastest speed during the lifetime. For a particle whose speed is changing dynamically, the speed at different periods during its lifetime is equal to the Particle Speed in the particle properties multiplied by the corresponding Value.
Particle Rotation
The change of the particle rotation degree during its lifetime can be set in Particle Rotation.
Click Particle Rotation on the left side of the Animation Curve Control panel to open the Particle Rotation Curve Editing panel. Initially, there is no dynamic change in the particle rotation degree.
The Particle Rotation property in the Particle Property panel needs to be set before editing the particle rotation curve. For a particle whose rotation degree is changing dynamically, the rotation degree at different periods during its lifetime is equal to the Particle Rotation in the particle properties multiplied by the corresponding Value.
Rise Velocity
The change of the particle rise velocity during its lifetime can be set in Rise Velocity.
Click Rise Velocity on the left side of the Animation Curve Control panel to open the Rise Velocity Curve Editing panel. Initially, there is no dynamic change in the particle rise velocity.
The Wind property in the Particle Property panel needs to be set before editing the rise velocity curve. For a particle whose rise velocity is changing dynamically, the rise velocity at different periods during its lifetime is equal to the Rise Velocity in the particle properties multiplied by the corresponding Value.
Particle Jitter Speed
The change of the particle jitter speed during its lifetime can be set in Particle Jitter Speed.
Click Particle Jitter Speed on the left side of the Animation Curve Control panel to open the Particle Jitter Speed Curve Editing panel. Initially, there is no dynamic change in the particle jitter speed.
The Particle Jitter Speed and Particle Jitter Strength properties in the Particle Property panel need to be set before editing the particle jitter speed curve. For a particle whose jitter speed is changing dynamically, the jitter speed at different periods during its lifetime is equal to the Particle Jitter Speed in the particle properties multiplied by the corresponding Value.
Attractor Speed
The change of the particle attractor speed during its lifetime can be set in Attractor Speed.
Click Attractor Speed on the left side of the Animation Curve Control panel to open the Attractor Speed Curve Editing panel. Initially, there is no dynamic change in the particle attractor speed.
The Attractor Speed and Attractor Type properties under the Attractor option in the Particle Property panel need to be set before editing the particle attractor speed curve. For a particle whose attractor speed is changing dynamically, the attractor speed at different periods during its lifetime is equal to the Attractor Speed in the particle properties multiplied by the corresponding Value.
Changing Colors
Click Color in the Animation Curve Control panel to open the Color Keyframe panel, in which the dynamic change effect of particle color during its lifetime can be set. The left side of the Color Bar represents the start of the particle's life, while the right side represents the end.
Click on the blank space below the Color Bar to add color keyframes at different locations. Select a keyframe and click the Delete button, or hold down a keyframe and drag it around to delete it (Note: Up to eight keyframes).
Select a keyframe, after which the color and location of it can be modified in Color and Location respectively. Select and drag the keyframe left and right to change the location. Double-click it directly to modify its color in the pop-up Color Picker window.
Particles and Vector Fields
In calculus and physics, Vector Field is a mapping that assigns each point in space to a vector. Vector Fields in physics include wind fields, gravitational fields, electromagnetic fields, water flow fields and etc. The suffix of the file describing the Vector Field is .fga, which is generally produced by a third-party DCC software, and the Flexi Engine provides an import feature. If you want to use the Vector Field related feature, the Particle Calculation Mode of the particle system must be set to GPU mode.
FGA Files
The FGA file mainly describes the vector size of each voxel in a cuboid in 3D space.
The first line of the file specifies the dimension size of the Vector Field, which consists of three numbers representing the dimensions of the X, Y, and Z axes of the Vector Field respectively with the dimension sizes recorded as X, Y, and Z. In general, X = Y = Z, and is a multiple of 2.
The three numbers in the second line indicate the coordinates of the bottommost vertex of the Vector Field cuboid boundary in world space.
The three numbers in the third line represent the world coordinates of the diagonal vertex of the point determined by the numbers in the second line. A cuboid in 3D space can be uniquely determined by the coordinates.
Next comes the actual content of the Vector Field, consisting of X × Y × Z lines, which represent the vector magnitude determined by each voxel in the coordinate system of this Vector Field (As in the file below, there are 16 × 16 × 16 + 3 = 4099 lines in total).
Vector Field Related Operations
Drag FGA files exported by DCC software to the Resource Preview window in the Editor.
Imported:
Set the Particle Calculation Mode under the Render option to GPU in the Particle Property panel of the Particle Editor.
Then select an FGA file in the Vector Field under the Particle System option.
If you want to adjust the strength of the vector field, you can adjust it in Vector Field Strength whose adjustable range is 0.0~10.0.
Adjust Particle Amount, Lifetime, Particle Duration under the Particle System option, and The Number Emitted At A Time under the Emit option to appropriate values. Particle jitter and gravity effects can be added by adjusting Particle Jitter Strength, Particle Jitter Speed, and Gravity Influence under the Motion option.
The following picture shows the result of Vector Field, Particle Jitter, Gravity and other properties working together (compatible with each other).