[Bf-committers] Some design questions on particle emission

Lukas Tönne lukas.toenne at googlemail.com
Sat Jun 26 14:02:17 CEST 2010

I'm currently trying to reimplement some more or less important
features of current particles and have some questions that should be
discussed. These are regarding issues with the emission procedure,
which will be much more flexible with paged buffers, but also break
some simplifying assumptions that make the current system work.

The new code can be found in the particles-2010 branch, more info can
be found in the wiki:

1) Jittered and Grid distribution:
These depend on a fixed amount of particles to avoid repetition (or at
least determine how many particles can be emitted before the pattern
repeats). This was no problem with the current fixed-size buffers and
their inherent "amount" value.
The new rate-based emitter mode does not have such an upper limit. It
could either disable these distributions or provide an arbitrary user
defined number. Emitters will also have "amount" modes, where a fixed
amount of particles is emitted over a frame interval or right at
simulation start (useful for hair with infinite lifetime), these modes
can still make use of jitter and grid distributions naturally.

2) Hair emission and lifetimes:
Currently hair particles are basically treated as "paths" of their
root particles. This means that when hair is calculated initially, the
normal particles are simulated over (arbitrarily) 100 frames and their
locations used as keys for the hair particle strands. This is not
totally wrong, since it somewhat resembles the process of hair or
grass "growing" out of their roots (which in turn are located in earth
or skin, represented by mesh surfaces). Good hair geometry usually
needs a lot of modification in particle edit mode afterwards. Actual
dynamic hair behaviour is done with a completely separate system,
which interprets the "finished" strands as cloth (and has its own
problems, see Durian).

I'd like to somehow make a separate simulation step for initial hair
growth to avoid fast-forwarding the whole particle system through the
100-frame lifetime of hairs as it happens now. This would probably
cause trouble, since particles can be emitted in any frame now, so
they can't be pre-calculated at simulation start. A quick solution
could be to just disable emissions other than "all at the same time"
for hair. Any opinions?

More information about the Bf-committers mailing list