Computer Graphics Laboratory ETH Zurich

ETH

OverCoat: An Implicit Canvas for 3D Painting

J. Schmid, M. S. Senn, M. Gross, R. Sumner

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.

Downloads

Download Paper
[PDF]
Download Video
[Video]
Download Paper
[BibTeX]