Proceedings of ACM SIGGRAPH (Vancouver, Canada, August 7-11, 2011), ACM Transactions on Graphics, vol. 30, no. 4, pp. 28:1-28:10
Abstract
We present a technique to generalize the 2D painting metaphor to 3D that allows the artist to treat the full 3D space as a canvas. Strokes painted in the 2D viewport window must be embedded in 3D space in a way that gives creative freedom to the artist while maintaining an acceptable level of controllability. We address this challenge by proposing a canvas concept defined implicitly by a 3D scalar field. The artist shapes the implicit canvas by creating approximate 3D proxy geometry. An optimization procedure is then used to embed painted strokes in space by satisfying different objective criteria defined on the scalar field. This functionality allows us to implement tools for painting along level set surfaces or across different level sets. Our method gives the power of fine-tuning the implicit canvas to the artist using a unified painting/sculpting metaphor. A sculpting tool can be used to paint into the implicit canvas. Rather than adding color, this tool creates a local change in the scalar field that results in outward or inward protrusions along the field's gradient direction. We address a visibility ambiguity inherent in 3D stroke rendering with a depth offsetting method that is well suited for hardware acceleration. We demonstrate results with a number of 3D paintings that exhibit effects difficult to realize with existing systems.
Overview
Strokes painted in the 2D viewport window must be embedded in
3D space in a way that gives creative freedom to the artist while
maintaining an acceptable level of control. We address this challenge
by proposing a canvas concept defined implicitly by a 3D
scalar function. The artist shapes the implicit canvas by creating
approximate 3D proxy geometry that defines a scalar distance field.
Figure 1: Three different views of a 3D painting of a cat.
An optimization procedure is used to embed painted strokes into
3D space by satisfying criteria defined on the scalar field and implemented
as different objective terms. For example, one objective
term ensures that strokes are embedded on a particular level set of
the scalar field. Since any level set value can be chosen, the artist
is not restricted to painting on any particular surface. Other objective
criteria allow the artist to paint across level sets, allowing fur,
hair, whiskers, or other effects to be created. By formulating the optimization
problem on the strokes themselves, the full scalar field
need never be created and stored explicitly, leading to an efficient
stroke embedding algorithm. The need for fine-scale control over
the implicit canvas presents a second challenge, which we address
by a unified painting/sculpting metaphor. A sculpting brush uses
the same optimization procedure discussed above but creates a local
change in the scalar field, resulting in outward or inward protrusions
along the field’s gradient. Using this sculpting tool, artists can
shape the canvas before painting into it, or move strokes that have
already been embedded to fine-tune the result. Finally, efficient rendering
is a key consideration in any interactive painting system. In
our case, the problem is non-trivial because merging 2D painting
and 3D concepts creates an ambiguity for the visibility determination
of paint strokes. We resolve this issue with a simple pre-sorting
step that generates an unambiguous rendering order and allows our
brush model to be implemented with interactive performance.
Results
Figure 2: Three different views of a 3D painting of a wizard and a genie.
Figure 3: Proxy geometry, paint stroke paths, and final painting (from left to right).
Figure 4: The top row shows two different views of a painted tree. The bottom row shows the respective proxy geometry with paint stroke paths on top.