Now we've added yet another type of particle brush.
In addition to the Particles
panel, the Bristles
brushes, and the recently added Orbicles
(3D orbiting particle brushes) as introduced in v7,
Project Dogwaffle Professional v8 (Broomhead) now
also has a 4th category of particle brushes: Foliage.
Way back in the 90's,
we made something of a splash with Optipustics,
our particle drawing tool. While the name covers a
variety of technologies including animatable
particles and bristle brushes, it is best known
for its particle foliage drawing tool.
The original particle
drawing is still there. Optipustics 2 is an
addiction to, not replacement for particle
foliage, and exits in a new foliage tab on the
particle panel.
The new Foliage tab is
a dedicated foliage drawing tool, while the
original could double as a particle system for
animation. Here are a few of the design concepts
that were integrated into the new tool:
The new system is
based on a library of rules, to allow for each
branch to have its own rule including dynamics
such as velocity and gravity. This makes branching
structures much more flexible.
It is a fully 3D gag,
internally speaking. Transformations such as
rotation and scaling should thus be possible in
the future, along with more complex dynamics. Stay
tuned for updates.
The new system is able
to generate depth and alpha channels. Other
channels may be possible in the future.
There is a real-time
preview. Final rendering has been moved to a
post process to allow for more complex rendering
gags to be accomplished than were previously
possible, or to account for information that isn't
initially known at draw-time, such as final
volume.
Images
Rules library:
Here's a quick look
at the secondary interface, i.e. the Foliage Rules
Library:
In the top left you
see the current Rule, namely rule number 2.
Essentially, the system offers a list of several
rules. The more rules you define, the more
sophisticated the foliage system can become. But
it also depends a lot on what exactly each of the
rules say. You can specify the color, whether the
branch will split and how, at what speed it grows
and which way, and which way gravity changes it.
It's not just up-down or left-right anymore, such
as it is in the original particle brush system.
This is now a fully 3D environment, so you see
such things like the velocity, damping, or the
gravity vectors defined as full 3D values, x, y
AND z!
Like in the original
particle brush system, you can still also indicate
how strongly to follow the mouse, which is great
for manually 'painting' the wind-blown reshaping
of bushes and trees (such as for Torrey pines or
tall tufts of weeds).
Don't worry though,
if this seems a little bit overwhelmingly too
complex, we have included some nice Presets to get
you started.
Presets:
The Rules library is
for those who want to explore and take an
adventure into the math side of the foliage
system, and experiment with new rules of their own
and thus create definitions for new foliage types.
For all artists who
just want to paint, we have included a collection
of presets. You can simply click "Load" at the
bottom of the panel, and find a great preset to
start from.
Then you can also
further fine-tune and modify the parameters in the
rules, or add more rules, and save your changes as
a new preset.
<<< click
the image to enlarge
Animating
Animating a growth
via the stroke player's “Hancock” mode is now a
reality as you can see in the first video at the
top (scrub towards the end of the video). We'll
have examples here shortly.
Here are just a few pictures to give you an idea.
Some contain combinations of Particle and Foliage
system. Scroll further below for sample videos as well.
Basic Tree foliage:
Comic book
trees
Dry stuff:
Foliage painting, on basic netbook:
Features,
Options & Parameters
The Time scale option enables size
reduction of features towards the top and tips.
Post-render pass
(secondary rendering): here's a comparison
of what you might get immediately at the end of a
single(!) brush stroke, and shortly thereafter, when
you wait for the final secondary render that ensues.
before
after
click images to
enlarge either one of them
Videos
How to draw a tree in seconds, wish just one
brush stroke
The Language of the Trees
User Notes
Most of the time we just recommend this: try it,
find out, make mistakes. But sometimes, we need an
explanation.
The Foliage system is a non-recursive particle
system that uses a library of Newtonian rules.
There. Not sure if that helped. There can be just one rule or there can be more.
Rules are there to tell the particles what they can
do next: what color they can assume, where they move
to, if they're on their own or affected by gravity
or even follow your mouse motion, if they keep going
or split, branch alternatingly, or die etc...
Note that the main panel has some significant
parameters too, such as the Rule count. You may have
defined a certain number of rules, but the global
rule count value will limit how many are actually
usable at the moment.
Also note that most parameters have a tool tip when
you hover and rest over their input items.
----- Globals (in the main
panel): -----
Max parameters: the maximum number of
particles to process at one time. Reduce this value
if you're on a very old/slow system or gasping for
RAM. Or just to test things a little faster as you
play and explore, before going back to final
settings.
Rule count: the number of rules currently in
effect. Even if you have more defined (there is room
for more), this is how many it will attempt to use.
When a particle branches, the next rule is
installed.
Max lifespan: the maximum number of
steps to be taken to process all particles.
Tint color: click this box to select a color
that will multiply (thereby creating a tint) to the
RGB values of the particles.Unlike with the
color cue option, the effect is the same regardless
of whether you use the left or right mouse to draw.This is a great way to quickly assign a more
lush and fresh look (greenish) or dry and old
(reddish).
Fog color & Fog amount: You can use
it to make plants come close to the selected color.
The value slider below it sets the intensity of the
fog. If you draw multiple plants, this trick can be
used to convey 'distance perspective' that makes the
objects fade to the far distant color such as blue
haze, or perhaps to black at night.The
farther away you want the tree to appear, the
stronger the fog effect should be. It's also
called a depth cueing trick.
Gain: sets the lightness of the overall
plant. From 0 to 1, generally, but can also be
greater than 1, in which case it'll be really
bright.
Pen size: this value is in pixels and affects
the size of the particles that are rendered as they
go on their journey.
Time scale: you want this. Well, most of us
do. Branches are getting smaller and thinner towards
the end and near the top of trees, don't they? In
the older particle brush system, there's an "age
decrement" parameter (since v4.1). think of
something like that.
Shading: This enabled a lighting effect, by
darkening the particles that grow down. The idea is
that the ones up above are exposed to more sunlight
(and even just sky light), whereas the branches down
below are in their shade.
Color cue: instead of taking the color cue
from the above-mentioned Fog and Tint color boxes,
use the primary and secondary colors, i.e. colorize
one or the other way depending on whether you use
the left or mouse button to paint it.
Create alpha: we can do more than set the
color of all pixels where particles are rendered. We
also set the selection mask, in the alpha channel.
At the end of it all, you'll have a beautifully
anti-aliased selection mask that contains the plant.
Use control-B for example to pick it up as a custom
brush (or use the option at the top of the Brush
menu - use selected as brush). The sky's the limit,
the alpha channel is the means to it.
Seed and Rnd: things need to look somewhat
randomized, and a random nuymber generate likes some
seed value to start from. Click the button to get a
new one, so the next plan will look even more
different. You don't want that however if
re-rendering (with Ctrl-A) and you want the exact
same shape (just perhaps different colors). You also
don't want that when doing a re-render in the stroke
player for an animation to show up consistent with
the way you saw it initially.
Autoseed: keep it enabled. You really will
want that. It doesn't affect the seed when using the
stroke player to re-render. But you'll be happy it
does it for you when doing normal brush strokes.Then again, who knows?
Rules library: edit the rules library
used to control the growth and evolution of the
particles, and blame it on this little button when
it's past 3 am and your significant other is asking
why you're still at the computer.Be
warned, this is a point of no return.
----- Parameters in the Rules library
panel: -----
Emmit count: The number of particles
that are emitted when the current rule (branch) is
started.
Branch lifespan: The number of steps
that the current branch is processed.
Repeat rule: The number of times the
current rule is repeated for the current branch
(starting at 0 repeats) before a new rule is
started, or the branch ends.
Red/Green/Blue: The color of the
current branch (may be above 255)
Follow mouse: Usually used for the
first rule but may be used for others. This
causes the branch to gravitate toward the current
mouse coordinates. Sometimes it can yield a "wind
blown" appearance. Try drawing a half circle with or
without a significant value in this parameter to see
the difference. Values are usually between 0
and 1, and something like 0.5 works well. Very
low values (0.001) can give a smoothing effect,
while still roughly following the mouse motion.
Gravity x,y,z: This is a negative
vector that is added to the particle at each step.
In other words, this is the incremental change. For
example, a value of y=1 would add -1 to the velocity
at each step. And yes, this is a fully 3D system.
Velocity x,y,z: In contrast to "Vector
x,y,z" mentioned below, this is a range setting for
initial velocity. The value may be any value
in-between its positive and negative. For
example, a value of 1 for any of these parameters
would cause a random value anywhere between -1 and 1
to be generated. The initial velocity is then
set to this value.
Vector x,y,z. Adds this value to the
initial velocity. For example, use -1 for y to
cause a branch to start growing upward.
Split type: This is the type of branch
to create when the particle lifespan has been
reached, and it has completed any repetition of its
rule. Basically answering the question: what now,
what's next? The type can be no-branch,
branch, branch even/odd, split, and end.
"No branch" causes nothing to happen. That's
it, you're done.... "You" means the current
rule. It just continues on with the next
rule, if there is one.
"Branch" causes the next rule to start, and
the current rule may continue at the same time
if its "repeat rule" value is greater than
0.
"Branch even/odd" alternates a positive and
negative branch.
"Split" causes the current particle to end
(even if the branch is set to repeat) and starts
the next rule.
"End" means that this is the last rule to
execute. This also depends on the "Rule
count" value on the main panel.
Damping x,y,z: This value is usually
between 0-1. The velocity of the current
particle is multiplied by this value before the next
rule is started. This can be used to reduce
velocity as a new particle is emitted.