ParticleSystem softBirthRate

Hi all!

We’re digging through the Panda3D source code and stumbled across references to a soft_birth_rate property (i.e. ParticleSystem.setSoftBirthRate). Does anyone know what this feature means? It’s undocumented in the list of classes.


i have messed a lot of the particles and the appear to be a bit broken …

soft birth rate appears to change birth rate after it is started which appears that you can not.

what effect are you trying to produce? I have messed with it but found a better function for my needs the induceLabor() which produces what i need i set birthRate to never and setLitterSize() to the amount of particles i want to produce … i think this is what soft birth should rate allows you to do but i am talking out of my ass…


thought I’d chime in on the soft_birth_rate thing. softStart() and softStop() were added to help out with some show issues regarding particle systems when used within particle intervals. It doesn’t mean they can’t be used elsewhere, but that was the original impetus for the functions.

It used to be that when ending a particle system, you would just call stop() or cleanup() or whatever the function is. The problem was that in doing so the particle system would abruptly stop and/or disappear. With particle systems, that’s usually just ugly. So we found that just bumping up the birth period to about the remaining particles in the system could live out the rest of their lives, at the end of which you would then call the stop() or cleanup() functions.

So basically. softStart() and softStop() just make this trick official. Instead of having just one birthrate, particle systems now have two: the normal one, and the “soft” one. The “soft” one is generally just a large enough number to make it look like the particle system has stopped emitting. softStart() merely sets the active birthrate to the normal one, while softStop() toggles it to the “soft” one.

This accomplishes two main things. It allows you to set these numbers once at the beginning and forget about them later on (you don’t have to remember the original birthrate when softStarting the system). And gives you a way to re-use one particle system without having to run relatively expensive setup and cleanup code between uses.

Hope that helps.