Film Gimp Brushes
The brush
architecture converts each stroke into a sequence of dabs.
By the way, Raph Levian's Wet
Dream, a water color paint system with interesting brush ideas
(not Film Gimp).
What Brushes Should Be Included - Jan 21, 2003
David Nagel made a very nice set of charcoal
brushes, which are now being included in Film Gimp. Some old
brushes need to be removed from the distribution. David says,
of the brushes currently in distribution, very few of them even
work -- so many are unnecessary. The ones that work have .vbr
extensions. The ones with .gbr extensions that work are indicated
with a naming convention like xxxf16.gbr. In other word, they're
16-bit float ("f16") Gimp Brush Files (".gbr").
All the rest are 8-bit carryovers from The GIMP and don't work
at all in Film Gimp.
David says, if you were wondering which of the brushes that
I designed should be included/excluded in future releases, I'd
say you can cut out any of the brushes larger than 200 pixels,
as they just add to the download time. The 40 brushes ranging
from 10 x 10 to 200 x 200 take up only about 500 KB total in compressed
form. If people want the larger brushes, they can download them
separately. But hey, I made those brushes for people to use as
they see fit, so include/exclude whatever you want. I'm going
to keep coming out with more and more, and I don't imagine you'd
want that much data in the standard installation.
Sean Ridenour's Procedural Brushes Proposal - Jan 24, 2003
Maybe there could be a sort of "painting language"
plug-in. Nothing complicated, just something a bit more flexible
than just the basic add,
subtract, etc. operations.
Something like:
myBrush {
OutputR = InputR + (ColorR * TabletPressure);
OutputG = InputG + (ColorG * TabletPressure);
OutputB = InputB + (ColorB * TabletPressure);
};
And the system could automatically substitute some user-defined
value for TabletPressure when the mouse is used instead of the
tablet, etc.
This would have the advantage of the artists being able to
write their own brush operations without having to know the internals
of the Film Gimp code or having to recompile Film Gimp if they
added or changed any of the operations.
Robin's note: This reminds me of Filter
Factory. Maybe we could adapt that concept to apply to procedural
brushes?
David Nagel's Brush Dynamics Mock-up - Jan 19, 2003
Here's a screen shot of a concept for Brush selection with
brush dynamics. Some of the stuff (like "Lighting")
probably falls into the category of "wish list" items,
but you get the idea. I suppose each of the major sections would
be collapsible to save screen real estate for people with smaller
monitors. Notes on this interface follow at the end of this message.
Notes:
1. Blending modes: As per the current "Mode" option,
with a random option. User can also select blending color options,
which would allow the brush to paint only on a selected color.
(Good for rotoscoping.)
2. Advance Dynamics: Fairly self-explanatory. It allows the
user to define random or tablet-controlled variations on a standard
brush, such as color jitter, rotation of the brush image, scattering
of the brush and noise.
3. Brush Options: Basically the same as in the current version,
but with expanded options for further control.
4. Lighting would be a feature that would allow a brush to
be lit as if it had height. The Luminance values of the brush
image could be used as a bump map. Here's an example from one
paint program.
5. "New Brush" is the same as the current feature.
6. "Save" saves the current dynamics options with
the current brush selection.
7. "Save As" creates a new brush file with the
currently selected brush and dynamics options.
Sam Richards' Brush Bug Example - Dec 2, 2002
Smoothness of the brush has problems, especially when they
are semi-transparent. Try taking the paint-brush, setting the
transparency to 50% and painting a line. You will see the sampling
of each brush (basically its stamped down). This is a gaussian
soft brush stroke zoomed up, with the bottom one a clone of the
top one, but with some levels applied to it to emphasise the problem.
This is actually with gimp-1.2. Sean Ridenour says, open the Brush
Selection dialog. Change the part that says "Spacing"
to whatever you want. This should make the problem go away. Sam
says, not, although it does reduce it. It should be possible to
have a brush where the brush size and hardness is truely user
definable in a much more flexable way than the current gimp approach.
Maybe one approach is to attempt to get a plugin working that
can simulate brushes. That way we can easily have procedurally
defined brushes simulating things like oil or charcoal, etc.
Karl Rasche's Brush Bug Example - Dec 2, 2002
A round brush can look pretty bad. This image shows a bunch
of clicking with a 50% opaque round brush (the 'spider veins'
at top center are from a 'gaussian' brush'...). The edges look
nasty. This was with 1.2.3, zoomed 300%.
Robin Rowe's Scraper Brush Proposal - Dec 5, 2002
This design would make brushes scrape instead of dab.
One approach to brush design would be to note the current
motion vector, calculate the right-angle line (cross-section)
through the center of the (round) brush where the vector crosses
(like a 'T'). Let's call that the mid-line. That line segment
is solid in the middle and transparent at the endpoints. Drag
(smudge) the mid-line crossways along the motion vector. Treat
the mid-line as a 1D scraper. That would make a 2D brush calculation
very fast, smooth, and simple -- as though the brush was 1D.
Because a 2D brush isn't really 1D, the mid-line approach
may need a corrective step after the scrape. For the corrective,
stamp the front and back edges of the 1D scrape (with half circles)
to correct for the (round) shape of the brush. It may be the corrective
need only be applied to the
endpoints, not all the points in between. Make the brush act as
a 1D scraper except for the back of the first point and front
of the last point. In other words, create a snake from a 1D scrape
with a 2D head and tail.
A checkmark in a brushes dialog could optionally turn off
the corrective, enable artists to use 2D brushes as pure 1D scrapers.
That would make brushes soft on the sides of the motion, but crisp
on the front and trailing edges. Artists may appreciate that control.
Procedural brushes (plug-ins) are a good idea, too. There
should be a generic procedural brush plug-in that has all the
plumbing already coded, and is just waiting for the brush procedure
itself. Make it easy for procedural brush coders to create plug-ins.
Questions to rower@movieeditor.com
Created January 27, 2003; updated
January 27, 2003