[sldev] Fwd: Questions on the particle system

Dirk Moerenhout blakar at gmail.com
Sun Dec 2 15:33:46 PST 2007


Forgot to put list in copy and I guess others may be interested in
particles too.

---------- Forwarded message ----------
From: Dirk Moerenhout <blakar at gmail.com>
Date: Dec 3, 2007 12:32 AM
Subject: Re: Questions on the particle system
To: Dale Glass <dale at daleglass.net>


> I just tried Windlight. I seems to share the same annoying behavior.
>
> Meaning, that when running into the particle limit, things start to
> sputter. If you see a fountain, it doesn't shoot less water, it shoots the
> full amount for a frame, then nothing for several, and so on.

There's actually no code that is aimed at doing this so I find it
rather odd. Feel free to send me landmarks for locations that exhibit
this. All limits are based on chances so it should always be gradual,
sources are never turned off and on.

> It also has the same issue with limiting particles. I only see an effect
> that has about 2500 of them. I have a 4096 limit set, and seeing a lot
> less particles than should be in the full effect.

Personally I believe any effect that has 2500 particles is written by
somebody who isn't interested in writing interesting particle sources.
Very few effects warrant 2500 live particles. I'd advise you to set
your particle limit to 8192 though, there's little reason to keep it
at 4096.

> > Argent already replied on the particle count stuff. If it needs to be
> > tracked you need to count it. As such it's important to limit at spawn
> > and not afterwards.
> Why?

See my other reply. If you disagree I'd suggest you remove the current
cap and create one for on screen particles. Then fire of a profiler
and see what happens.

> > My patches have done that by implementing a
> > dynamic throttling mechanism. The primary basis is particle
> > viewability. As such a source spawning larger particles may get
> > priority over one that is spawning smaller invisible particles near
> > you. It may not be agressive enough to everyones liking but it offer a
> > huge improvement over the old code.
> I guess that I must be weird, but I disagree here. I find a huge smoke
> stack far away spewing lots of huge particles quite uninteresting. On the
> other hand I want to see a nearby candle, or tiny sparks from a magic wand
> I'm holding.

In general, in testing I've found nearly no scene that is not rendered
correctly when you have your limit set to 8192 particles (which if you
ask me should be the default). Particles from a nearby candle or wand
don't need a lot of particles anyway and are hence rarely throttled.
Personally my aim is always to get a correctly rendered scene. Sure if
there's many parcels near eachother with differing content this is not
that interesting but many large scenes are only rendered correctly if
the throttling is adapted to the cause.

> If the particles aren't visible then IMO they effectively don't exist and
> shouldn't be counted towards the limit.

Unfortunately your CPU will disagree and there has already been done
quite a bit of work trying to keep the CPU load of off screen
particles low. The VWR-983 fixes for example would've been a lot more
straight forward if it wasn't for concerns of CPU usage.

> > On the anti-griefing part the new code has some stuff too as the high
> > throttling levels will cut in the amount of live particles a single
> > source can want simultaneously. A source may for example try to get
> > thousands of live particles by spawning a few at a time but giving
> > them long lives. The new code will punish such sources by limiting the
> > amount of particles they will get.
>
> Not sure if that's going to be very effective as they can always use more
> prims. My limit is simply based on that particle griefing seldom happens
> right on your land, because if it was there you could remove it.

I own only own 512m² and hence spend most of my time on other land. My
goal was to see things others created in the way it looks best. As
such I wanted to kill off the particle streams that are being abusive
to their environment. Sure one could split prims but a lot of
"griefing" isn't really meant to be bad, it's just caused by not well
thought over sources.

> So my approach is to simply add the possibility of killing all sources more
> than X meters away. Eventually I'm going to mute all particle emission
> from avatars who are banned on the parcel you're on (been planning this
> for a while, but got busy)

I can probably whip out a version that throttles on distance as soon
as the dynamic threshold is forced to throttle viewable particles (it
now first cuts away particles that are not in view and are unlikely to
come in view, this irregardless of their distance as a source 20m away
from you may be spawning stuff you won't ever see because you can't
move close enough to it in time in order to see it). It would be an
alternative to cutting in the amount of particles abusive sources can
spawn.

Dirk aka Blakar Ogre


More information about the SLDev mailing list