The particle Editor Plugin allows creation and changing of saved particle data that can be loaded inside an application using the Delta Engine particle emitters.
Upon selection of a material and a Billboard Mode fitting the shader belonging to the material you will see an example of an emitter using the currently selected values inside the viewport. Materials having 2D shaders have to be rendered in 2D mode, those using 3D shaders require 3D mode.
In case you have not saved a material so far, just hit "Create Material" to open the Material Editor, or directly select it from the list on the left side of the Editor Window, and select the texture you want to use for your particles and a suitable shader, e.g. "Position3DColorUv" from the default shaders and save the result with a content name of your choice.
Any changes of the values, given that what they are set to makes sense, also result in an update of this preview.
Once you are pleased about the result, you can save it as content for your project to then load it inside your application.
For that, just give a name, the future name of the data file, and hit "Save".
The data will be saved and uploaded for your project.
From then on, just call loading of the data as content inside your application to retrieve it.
The engine provides several types of particle emitters that can be useful for many kinds of effects, be it explosions, smoketrails or sparks.
Just like all the objects that can be updated and/or rendered, a particle emitter is an entity.
A major difference to use of several sprites is not just the fact that a seemingly complex effect can be achieved by setting a few values, but also performance optimizations, achieving a much higher framerate using particles when having many instances of the same texture drawn at the same time, even if they are not moving or being animated in any fancy way.
Emitter Type: The different types choose locations to spawn particles in a different way, such as all in one point, in a plane or on the surface of a 3D sphere. This is mostly used for the Editor preview, since the same saved data can normally be used for different types.
Size: Width and Height of one particle, those always having two dimensions. Using a RangeGraph here, which contains a variable number of single values that are interpolated over during the lifetime of a particle.
Color: Range of colors used in rendering the particle, each of them independently interpolating through this gradient. Make sure the material you use contains a shader supporting colors (such as Position3DColorUv from the default shaders)if you want to use this!
Life Time: This determines how many seconds pass between the creation and removal of each particle. Also serves as the reference point for most of the values interpolated during the existence of a particle.
Billboard Mode: Both decides if the emitter shall be rendered two- or three-dimensionally and in what way the particle billboards will be aligned in case of 3D. E.g. CameraAligned means the particles are rendered in 3D space and aligned to the view plane, which in most cases is the most reasonable way to handle 3D effects.
Start Position: By this you can decide the area around the position of the emitter itself that particles can spawn in.
Start Rotation: Particles will be rotated by a value in degrees from this range immediately on creation.
Start Velocity: All particles will have an initial movement vector from this range. In case of 2D particles, the Z component is neglected.
Acceleration: Particles' velocity is changes over time if this is set, the acceleration itself being a range that is being interpolated over.
Rotation Speed: The rotation of particles can change over time by a variable degree value.
Spawn Interval: The time interval lying between the spawnings of particles, measured in seconds. Notice that by the relation of this, Lifetime and Maximum Number you can achieve effects like particles being spawned in waves. Also a spawnInterval of 0 or lesser means that no particles will be spawned unless the spawning is explicitly called in your code.
Max. Number: This limits the maximum number of particles that can exist for one emitter at any given time. For higher framerates especially on mobile devices, you might want to set it rather low, especially if you have several emitters at the same time. Higher numbers can allow for more interesting effects in some cases.