I would just love to see a thick black and grey smoke slowly sweeping throughout the battlefield and to see smoke and dust linger for several seconds after various explosions and impacts – however…
this will destroy the performance and the frame-rate will drop through the floor, making everybody curse at me and scream and yell and shake their fists in my general direction! SO…
The root of the problem is basically that particles filling out a large area of the screen will take the graphics card much longer to calculate (or draw) than hundreds or even thousands of tiny particles filling out small areas of the screen. A large number of large particles can be devastating to the frame-rate since the graphics-card will have to draw one pass for each particle filling out the screen at each frame and that takes a relatively long time.
I do however have a few things I can do to overcome the worst problems – or sort of anyway.
Instead of starting all the different particle spawns at the exact same time – a smouldering smoke after an explosion for example can be started with a slight delay so the smoke particles will only start spawning when the initial smoke particles has started to die off. This way the number of particles showing on screen at the same time can be somewhat reduced.
I can also consider making smaller amounts of particles and make them more dense instead of a larger number of more transparent ones. This may sometimes work but it’s not making the effect look just as good though.
Lastly we can make the engine look for particles that are getting too large for comfort (or too close to the camera) and either kill them off and/or render them in a lower resolution. This is a solution that we’re planning on taking a closer look at in the near future. The engine already does some of these things, but we need to refine the code a bit to make it a bit more selective and less destructive to the final look of the effects.
Hope this gives you guys an idea of some of the more boring and frustrating parts of an effects dudes daily life..
[You are just annoyed that we wont use ALL the processing power for sparks and smoke :-), Ed.]