Applications
Interactive Painting With Watercolor
Automatic Image "Watercolorization"
Non-photorealistic Rendering of 3D Models
Interactive Painting With Watercolors
One application of our method is an interactive painting program. We created on that allows the user to
paint the initial conditions for the watercolor simulator. The user is then able to set up on or more glazes
for the simulator. The screen shot below shows a painting in different levels of completion.
Each pigment is painted independently using a circular brush. The stroke has a Gaussian intensity drop-off. The
brush size, penumbra, and overall intensity parameters are adjustable. The wet-area mask is also painted directly onto
the screen with a brush.
The biggest problem with this application was that it ran too slowly for interactive painting, but it was
very efficient in being able to composit many different glazes together.
Automatic Image "Watercolorization"
A second application of our method was an automatic image "watercolorization" program to turn an image
into a watercolor image. The first step is to extract mattes for the key elements and create and ordered
set of pigments. In our example we chose our pigments by hand. The conversion is done in two steps:
Color Separation
Color separation is when the ideal distribution of pigment in each glaze is calculated. This is calculated
using a brute force search over a discrete set of thicknesses for each pigment. There is an ordered list of
n pigments with a thickness range for each pigment divided into m steps. A composite color is then computed
for each of the m^n compbinations. These colors are then stored in a 3D-tree accourding to its RGB color values.
The tree is then pruned so that the difference between the colors is less than 1/255. The color separations are
then computed by searching the tree for the pigment combination that best matches the target color.
Brushstroke Planning
A painter can somewhat control the concentration and flow of pigment in a wash by carefully monitoring the realative
wetness of the brush and paper. The simulator controls the glze by adding incremental brushtrokes of pigment. It also
controls the direction of flow by increasing or decreasing water pressure wherever pigment is added. by repeatedly
querying and manipulating the state of the glaze at a user-specified interval the image gets closer to its target
image. At each step the current pigment distribution is compared to the target glaze by performing a low-pass filter
on the difference between the two images. In areas where the current glaze does not have enough pigment the pigment
concentration and water pressure are incremented by a certain amount. In areas where the current glaze has too much
pigment the water pressure is incremented a certain amount. Highlights are created by removing paint from areas defined
by the user in the form of mattes.
Examples of this application:
before:
after:
Non-photorealistic Rendering of 3D Models
A third application of our method is to create a non-photorealistic renderer for 3D models. We simply
take a 3D scene and automatically generate mattes that isolate each object. These mattes are then
used as the input to our watercolorization process. Both the pigment choices and brushstroke planning parameters
are supplied by the user.