[sldev] [VWR] [PATCH] particles VWR-418 VWR-983 VWR-2164

Dirk Moerenhout blakar at gmail.com
Mon Sep 10 14:08:32 PDT 2007


I'm looking for people who want to go over my proposed particle
fixes/optimisations. There's a zip attached to VWR-418 on JIRA that
contains 4 patches. They are numbered and can be applied in that order
to 1.18.3.2. What it contains:

dead code removal, most notably:
- removal of all isparticle() stuff as it doesn't do a thing
- removal of mextents and all the related calculations as the values
are overwritten whenever they are requested

VWR-2164:
This fixes particle alpha transition. Specific bugs:
- particles can't currently fade in -> fixed
- particles don't fade out to the correct value if end value is not 0 -> fixed

VWR-418:
This focuses on particle generation. This should fix most of the
issues where the particle system is overloaded. Note that the system
is adaptive. Depending on the amount of particles vs max particles a
reference variable is updated. This variable is in turn used to limit
particle generations. Some of the limits that'll be set:
- Particles that are too small to be useful are not generated at all
- Particles that are invisible when generated and require you to
travel towards them faster than a threshold are not generated
(threshold will depend on load)
- Particle sources that are very taxing get tougher restrictions (e.g.
a particle system which parameters would result in it having 2k
particles simultenously in transit will be aggressively cut down while
at the same time one generating only 20 is left alone). (limit will
depend on load)
There's also a bug fix for the fact that simulation may get to
generate particles twice.

VWR-983:
This focuses on particle updates. This should fix the issues where
particles go out of sync and end up where they should not be according
to timing. This is done by keeping accurate timing for particles that
are invisible (and hence get updated only every 8 grames). And a bug
is fixed that caused particles not to be updated every time another
particle was moved to another group or deleted.

Have fun :)

I've other fixes and some performance stuff left but I think that the
above would be a nice start (it'll give quite a bit of visual impact
already).

Dirk aka Blakar Ogre


More information about the SLDev mailing list