ParticleSystem::setVisible

What it says on the tin: a place to discuss proposed new features.
Post Reply
User avatar
cdleonard
Goblin
Posts: 266
Joined: Thu May 31, 2007 9:45 am

ParticleSystem::setVisible

Post by cdleonard »

It seems that if you set a ParticleSystem to be invisible via ::setVisible(false) it will still update itself every frame; as long as it is in the scene. ParticleSystems DO have a nonvisible_update_timeout option; but that only works if the particle system is outside the camera frustum (even if setVisble(false)).

What this means is that if you create a lot invisible particle systems you will consume a VERY large amount of CPU time. I solved this by detaching particle systems instead of just setting them as invisible; but this seems like a hack to me.

Shouldn't ->setVisible work together with nonvisible_update_timeout? This behaviour should at least be documented with a big warning in the manual.
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 67
Contact:

Post by sinbad »

Yes, you're right. I will make sure that the 'non visible timer' starts counting up from the frame that a psys is made invisible through whatever means.

For now though, consider detaching the particle systems from their scene nodes instead. That's actually a more efficient solution anyway unless the psys is only invisible for a very short time.
Post Reply