[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Particle systems








>this assumes that the systems stay relatively contained. That'd really depend
>on what kind of game you're writing and what the particle system is emulating.
>If you're simulating debris then for a flight sim or car game, it might be
>feasable, as the particle system will be well contained. However, smoke tends
>to go all over the place, as does debris in a space sim. Culling systems
>would have small peices of debris or smoke far from the systems center blinking
>in and out of existance, no?

Yeah.. this is why I was thinking about two seperate types of system: small,
short lived particles like the flames in a fire would be part of the fire object
whereas the smoke emitted would be long lived roaming ones - I was thinking of
making the roaming ones the only ones that can emit more particles, so the
smaller particle systems can be simpler/run faster.

{The roaming particles might have infinite lifespan.. it's /just/ possible :-) }

>> { I guess it doesn't even have to run if it's not visible... it could just be
>> frozen until it shows up again... no-one would notice :-}
>it'd be highly noticable I think, but someone else has already provided an
>example.

They all run frame independent: if you don't look at something for a while and
then come back, it just skips the intervening physics. Plus if it was being
clipped properly, I could arrange for them to start running slightly before they
become visible.

>I know with opengl, if there's a large particle system to be displayed, like
>smoke from a rocket blast in q3, a fairly small particle system is built. Each
>particle is given a radius (or size) and a texture, then it's billboarded. To
>simulate disepation, the size is increased and the alpha value changed so it
>becomes more translucent until it's invisible, where the particle is deleted.
>This gives a nice full smoke trail using an extremely small number of
>particles, like <200.

This is what I'm doing: extracting the stuff to do the billboarding from the
camera matrix by downloading it. I'm only billboarding by rotation about Y
because I can reasonably constrain the view vector to be more or less ||l to the
ground.