3D Painting on Scanned Surfaces

Maneesh Agrawala <maneesh@pepper.stanford.edu>
Andrew C. Beers <beers@cs.stanford.edu>
Marc Levoy <levoy@cs.stanford.edu>


1. Introduction

2. System Configuration

3. Data Representation

4. Methods

4.1 Object--mesh registration

4.2 Painting

4.3 Brush effects

4.4 Combating registration errors

5. Results

We have been able to paint detailed textures on several different meshes including the bunny and the wolf-head, shown in color plates 2-8. The bunny mesh was created by zippering 10 Cyberware scans of the ceramic bunny shown in plate 1; the final mesh contains 69,451 triangles. Plate 2 shows sensor sample points in the process of being initially aligned with the bunny mesh in preparation for running Besl's registration algorithm. The purple crosses represent sensor sample points.

A 3D checkerboard texture and 2D image texture of an orchid were applied to the bunny shown in plate 3. While the triangles in the original bunny mesh were about the size of a pixel, we found that a finer mesh was necessary to capture fine detail in the image texture. We refined the original bunny mesh by simply splitting each triangle into four smaller triangles.

Plates 4-8 show several complete paintings we created with our system. Most of the paintings took several hours to complete. The wolf-head mesh in plate 8 contains 58,104 triangles while the higher-resolution wolf-head mesh used in plates 6 and 7 contains 232,416 triangles. The bunny head mesh in plate 5 is a piece of the high-resolution bunny mesh, while the low-resolution bunny mesh was used in plate 4.

In creating the bumpy wolf shown in plate 7 we used almost every painting tool we implemented. The bumps were created by applying the displacement brush with a spherical brush volume to the mesh. The distance filter was used in coloring the bumps as they were extruded from the mesh. As in plates 3 and 6, the orchid is a 2D image that was texture mapped onto the mesh.

6. Future Directions

7. Conclusions

8. Acknowledgments