Why is there a cap for ParticleEmitter rate?

I understand that a cap on the total number of particles is important for performance reasons, but why is rate capped per emitter? To demonstrate the issue, I’ve attached two gifs of the same emitter with a lifetime of 5 and a variable rate – one has a rate of 1000, and the other has a rate of 1 million. This single emitter is the only emitter in the level (empty baseplate). Setting the rate to such a high value (a million) is intended to demonstrate the rate cap, and not represent normal use case.

Can you tell which one has which rate? The one on the left has a rate of a million, and the one on the right has a rate of a thousand – they both look identical. This is obviously no good, because for inclement weather I need vision to be obscured more. Here is the same emitter, with a rate of 1000, duplicated so there are four total:

Why are 4x1000 emitters emitting more particles than 1x1,000,000 emitter? That behavior is not ideal, and it forces me to create duplicate emitters instead of tweaking a single emitter. So long as I don’t go over the total particle cap, rate should go as high as I tweak it.


I think it has actually just proven its usefulness. If nothing else, the rate cap is there so that it would hopefully make you pause and examine what you are doing. Rendering a lot of fullscreen particles like that is a sure way to melt your players’ GPUs.


Do you think there is a better way in which the desired effect could be achieved? (either through something that is already a feature, or something that could be implemented to accommodate for it in a better way) I guess he’s asking for some kind of “volumetric” weather effect.

A much more fillrate-efficient way is to tweak particle transparency based on the desired obscurance. Minimizing the emission rate and tweaking the texture so that it works out nicely should be doable for this effect, and it can dramatically improve performance.