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.