[sldev] Reviewing/Fixing the Particle System

Argent Stonecutter secret.argent at gmail.com
Wed May 23 12:52:18 PDT 2007


> The problem is that those leaks I saw were not the source of the  
> problem.  They just lost memory but, as far as I can tell, were  
> removed from the list of active emitters.  In fact I'm running with  
> that fix now and the particle system still fills up to the brim.
>
> The problems I'm seeing from source and debugging is, that:
>
> 1) the system generates excess amounts of particle sources with  
> lifetime 0 that I can see no actually source for (I mean 200 high  
> frequency emitters should be visible somehow?)

Given that the problem builds up after teleport and region crossing,  
is it possible that the region of the generators are not being taken  
into account to determine when particle systems should be removed?

> 2) many of these systems generate progressive particles, meaning  
> they generate more particles than particles die ... e.g. creating  
> 200 particles per second (pps) with a particle lifetime of 2  
> seconds meaning that when the first wave has died two times the  
> amount have been generated, etc. I've seen situations with over  
> hundred of those active.

I'm not sure I understand. If the emitter generates 200 particles a  
second with a lifetime of two seconds, then after 1 second there will  
be 200, after 2 seconds there will be 400, after 3 seconds there will  
be 400, and there will never be more than 400. I'm not sure I  
understand what you mean by "progressive" here.

100-200 pps is not an unreasonably high emission rate.

Consider the contrails on my plane: the plane can move up to 30m/s,  
and the contrail particles are 0.5m to start with and need to be  
overlapped to create a "continuum", so I have to generate a minimum  
of 120 particles per second assuming *no* competition just to keep  
the contrails looking "solid", even with no "burst" effect.

I don't think the problem is that it's not aggressive enough about  
pruning particle systems, I think the problem is that particle  
emitters are left running for objects that are not in sight.



More information about the SLDev mailing list