We've been working on organising our particle system in a more effective manner.
Below is a breakdown of some of the components we are currently implementing. The particles system is being designed with 3D particles in mind, though we are hoping to implement billboard particles too at a later time
.
EMITTER
Emission - number of models per sec
Simulation - Slow mo/fast forward
Energy - life span
Velocity - Rate of speed at which the particles are emitted
Rotation - Choose the rotational axis that each particle will turn on and the velocity at which it rotates
Scale - Size to which the meshes scale to
- There is the option for most of these component pieces to be randomised
RENDERERS
We're going to be providing access to 3 separate renderer options, as they all have pros and cons for different uses. All renders will have the options for casting/receiving shadows, setting a mesh and setting materials
Baked
Efficient to draw just heavy on CPU side - slow processing - hard limit on number of verts
GL
Our first experiment with GL particle renderer was slow - disappointing
This should have been fast to process and should be fast to draw cant figure out why - should be the fastest and most efficient of the 3
Draw
Fast to process but generates a ton of draw calls - one draw call for each material used
FORCES
Gravity - This should act in accordance with the settings for gravity under Edit >> Project Settings >> Physics
Gravity Well - Can be attached to an object to pull the particles in