Documentation/Articles/Overview of Particle System Editor
From NeoAxis 3D Engine Wiki
|Language:||English • Russian||Status:||Approved|
It's often necessary to create special effects such as smoke, rain, leaves fall, snow, fire, explosion or water streams. In order to create such effects particle systems are used. This editor allows you to create the particle systems.
In order to work with particle systems you have to know the meaning of the following terms:
- Particle refers to a single particle of the system.
- Emitter refers to the particle source.
- Affector is used for current particle management, allowing you to change parameters such as color, rotation, scaling etc.
- Billboard is a plane object, which is always facing the camera.
Pre-made effects are stored in the Data\Effects folder. There you can find the examples of fire, smoke and explosion effects.
Tutorial: Creation of a Particle System
In this tutorial you will learn how to create a particle system. As an example, you will create a blue fire effect step by step. You will see the system's general options adjustment, the creation of an emitter as well as how to use affectors (objects which influences the particles with time).
Creation of a New Particle System File
First of all, you should create a folder for your new effect. To do this, right-click the Effects' folder and choose the New option in the dialog box. Then choose Folder.
After specifying the folder name (e.g. BlueFireParticle), right-click on it and again choose New option in the context menu. The next step is Particle System.
In new dialog box set the name of the particle effect you want to create, e.g. BlueFireParticle. Then press the Next button.
A new particle system file has just been created. Now you can now proceed to particle system adjustment.
Particle System Adjustment
Each particle of a system is textured using a material. In order to create your effect you will need a material with a fire texture. Materials are usually created in Material Editor.
In this tutorial you will be using a ready material stored in the Data\Effects\FireParticle folder. Now, copy the files FireParticle.highMaterial and fire.png into the folder you have created before and rename them. In order to do it, right-click on it and select the step Copy.
Then right-click on BlueFireParticle folder and choose Paste in the context menu.
Now, you will take care of the particle system adjustment. To enter the edit mode, double-leftclick on the file BlueFireParticle.particle.
First, specify a material for you particle system. To do this, select the MaterialName field and press the "..." button.
Now, choose the FireParticle.highMaterial file in the dialog box in your new effect's folder (Data\Effects\BlueFireParticle).
The material has been set. The next step is to create the particle Emitter and add the necessary Affectors.
Now you will create and setup a particle Emitter (the entity handling particles creation). The engine supports several emitter types. These types can be of various forms (point, parallelepiped, cylinder etc.) In this tutorial you will be using a point emitter.
In order to adjust the emitter, you have to select the Emitters parameter of the particle system and press the "..." button.
Now, press the Add button to add a PointEmitter.
Specify the following emitter parameters:
- set the Angle parameter to 30 (particle scatter angle),
- for the Color parameter set all sliders to 0 (instead of the initial value equal to 255),
- Set the Direction parameter to "0 0 1" (the initial direction of the particle flow),,
- set the ParticleVelocity parameter to "1 2" (initial speed as an interval),
- set the TimeToLive parameter to "1 1" (particle lifetime as an interval),
- the other settings should be left to default.
And then press the OK button.
The emitter creation is now complete.
Now, you have to create and setup the affectors, in other words, particle interaction and morphing over time.
In order to animate your particles, you have to create three affectors:
- ColourInterpolatorAffector, changing the color over time,
- ScaleAffector, changing particle size,
- RotationAffector for particle rotation.
First of all, select the Affectors parameter and press the "..." button.
Then, create the affector that will take care of changing the system color over time. Fire has several specific features that have to be taken into account: It is bright and semitransparent at the bottom, then they go through the dense light zone. And, finally, particle color turns invisible and they disappear. In order to get such an effect, it is convenient to use the ColourInterpolatorAffector. With this affector you can specify several areas with different color and lifetime.
Press the Add button in the affector adjustment window in order to add a new ColourInterpolatorAffector.
Set the following value of its parameters:
- set the Item0Color parameter to "15 111 205 0".
- set the Item0Time parameter to 0.
- set the Item1Color parameter to "15 111 205 255".
- set the Item1Time parameter to 0.2.
- set the Item2Color parameter to "0 0 255 0".
- Item2Time выставим в 1,
- the other settings should be kept to default.
You have adjusted particle color change over time. Now, proceed to particle size change. To do this add a ScaleAffector using the Add button.
Set the value of the Adjust parameter to 0.5.
The last affector you have to create is the one for particle rotation. The affector handling particle rotation over time is called RotationAffector. Add it using the Add button.
Set this affectors parameters values as follows:
- set the Rotation parameter to 0 359 degrees.
- set the RotationSpeed parameter to "-30 30".
Now that all the necessary affectors have been created, You can press the OK button.
You have successfully completed the affectors setup for your particle system!.
Completing Particle Adjustment
Now, you only have to specify particle size. Set the value of the Size parameter of the particle system to "2 3".
Do not forget to save you particle system. In order to do it, choose the step Save in the menu File. You have completed the particle system creation!
Particle System Parameters
|Renderer||The renderer settings (display of the particles). Detailed description.|
|Size||Initial particle size.|
|AutomaticQuota||This parameter enables/disables the automatic detection of optimal particle number (the Quota property).|
|Quota||The maximal amount of active particles for the system.|
|CullIndividually||This parameter enables/disables the visibility mode for each particle.|
|LocalSpace||This parameter enables/disables the LocalSpace mode. If set to true, the particles remain relative to the node the particle system is attached to.|
|Sorted||This parameter enables/disables particles sorting by distance to the camera.|
The Render Adjustment
|AccurateFacing||This parameter enables/disables the use of an 'accurate' facing model based on the vector from each billboard to the camera, rather than an optimized version using just camera direction.|
|BillboardOrigin||The point which acts as the origin point for all billboards in this set.|
|BillboardRotation||Billboard rotation type.|
|BillboardType||The type of the particle billboard.|
|CommonDirection||The vector, along which the billboard is directed.|
|CommonUpVector||A vector, specifiying the “upwards” direction for the particle billboard.|
|PointRendering||This parameter enables/disables the Point cloud.|
Emitters are particle generators and particle spawn points. There are several types of emitters, each having a different shape. Emitter types:
Properties that are common to all emitter types:
|Angle||Specifies the maximal particle scatter angle (degrees) from the emitter direction. If you set this parameter to 180, particles will be emitted in all directions. If you set it to 0, particles will only be emitted in the direction, specified in the Direction parameter.|
|Color||Initial particle color.|
|Direction||Initial particle direction.|
|Duration||This parameter specifies the emitter particle creation time as an interval in seconds. With this value set to "0 0" the emitter will create particles permanently.|
|EmissionRate||This parameter specifies the number of particles emitted per second. By default, this parameter is set to 10 particles per second.|
|ParticleVelocity||Specifies minimal and maximal particle size. Particles will have a random initial speed in the specified interval.|
|Position||Emitter position relative to the center.|
|RepeatDelay||Specifies wait time till next emission, if the system has completed its work and is out of particles. Sets the minimal and maximal time for the system to restart. The time period will be selected randomly within the given interval.|
|TimeToLive||Lifetime of each particle. Particles will live for a random time period from the given interval.|
Some emitters also have several additional properties to specify their size and form:
|InnerSize||Specifies the size of the inner part of the emitter in meter. It must be set using 3 coordinates.|
|Size||Specifies emitter size in meters. It must be set using 3 coordinates.|
Affectors are used for current particle system management, allowing you to change parameters such as color, rotation, scaling etc.
- DirectionRandomiser ((random direction affector),
- DeflectorPlane (particle deflector),
This affector specifies additional forces that affect particle movement and direction. You can use it to simulate gravity, wind or any other linear force.
|ForceApplication||Specifies the way, the force vector is applied to the particle. If this value is set to Add, the force vector will be added to the the particle movement impulse. This may result in infinite acceleration, though. If this parameter is set to Average, particle average speed will be calculated using the force vector and current particle impulse. This does not stabilize particle speed, as particle speed in this case is non-linear.|
|ForceVector||Force vector applied to the particle system. It must be set using 3 coordinates.|
This affector changes particle color over time.
|Adjust||The adjustment made to each of the color components (RGBA) per second. These values will be added to the color of all particles every second, interpolated over each frame for smooth adjustment.|
This affector changes particle color over time. Unlike with the ColourFader, with this one you can adjust two colors at a time.
|Adjust1||The adjustment made to each of the color components (RGBA) on the particle's LifeTime per second. These values will be added to the color of all particles proportionally, interpolated over each frame for smooth adjustment. It's used until the LifeTime exceed the value of StateChange parameter.|
|Adjust2||The adjustment made to each of the color components (RGBA)per second. These values will be added to the color of all particles proportionally, interpolated over each frame for smooth adjustment. It's used when the LifeTime exceeded the value of StateChange parameter.|
|StateChange||A time from the beginning of the particle's LifeTime after the color adjusting parameter Adjust2 is enabled. Until that, the Adjust1 parameter is used.|
Just like the ColourFader and the ColourFader2 affectors, this affector changes particle color. However, this one does it in six steps. Each step is activated at a certain time and has certain colors. Thus, this affector changes particle color at certain time intervals.
This affector has 12 parameters, which are represented in 6 pairs consisting of 2 of the following properties:
|ItemTime||Specifies the time for a certain stage to begin.|
This affector changes particle size over time. It can both increase or decrease particle size.
|Adjust||Particle size change per second coefficient.|
This affector manages particle rotation over time. The rotation effect is using texture rotation.
|Rotation||This parameter specifies the maximal and the minimal angle for particle rotation. Thus, particle rotation will be implemented in the given interval.|
|RotationSpeed||This parameter specifies the maximal and the minimal speed of particle rotation. Thus, particle rotation speed will stay in the given interval.|
This affector enables particle random movement.
|KeepVelocity||Enables/disables particle speed change. If this is set to True, particle speed will not change|
|Randomness||Makes particles randomly deflect in any of the three directions.|
|Scope||Particles will randomly deflect within the given scope.|
This affector creates a deflector plane, which deflects all particles coming in contact with it.
|Bounce||Specifies particle deflection force. If this parameter is set to 0.5, particle deflection force will be equal to 50% of the initial impulse.|
|PlaneNormal||Normal to the deflection plane.|
|PlanePoint||A point on the deflection plane.|
In order to adjust Particle System Editor press the Options button in the main panel or choose the same in the Tools menu. In the dialog box choose the Particle System option.
|Background Color||Choose the background color for the editor.|
|Show Axes||Enable/disable the visual display of axes coordinates.|
|Show Grid||Enable/disable the visual display of the grid.|
|Sky Box||Specifies a skybox to be displayed at the background while editing objects.|