Morphing between Teddy-like objects

CSE 557 – Computer Graphics Final Project

By Robert Blanding

 

 

Project Summary

 

Teddy is a sketching interface for 3D freeform design created by Takeo Igarashi. It allows the user to create organic-looking 3D objects from simple 2D sketches. The base-shape for a Teddy object is defined by a 2D polygon, therefore morphing between Teddy base-shapes can be accomplished by morphing between the generating 2D polygons. In order to implement morphing between Teddy-like objects I first implemented functionality for generating the objects from 2D polygons, then integrated this with some of my existing code for 2D polygon morphing.

 

Creating the Teddy objects

 

Igarashi’s algorithm for creating Teddy objects is described in his Siggraph 99 paper here. Basically a 2D mesh is built on the polygon using a constrained Delaunay triangulation (CDT). This 2D mesh is then “puffed up” to make a 3D object. My implementation differs from Igarashi’s in a couple of ways. The primary difference is that where Igarashi uses a CDT, I use the exact medial axis (shape skeleton) of the polygon. The medial axis is more complex to compute, but offers some advantages over the CDT. I also allow for objects of varying topology to be created. Igarashi’s algorithm is capable of doing this, but his implementation does not permit it.

 

Figure 1 outlines the process. First the user sketches the object, and then the medial axis is generated. From this a mesh is built by projecting line segments from the medial axis to the boundary of the object and stitching the resulting line segments into strips of triangles. The vertices of the resulting mesh are then raised up along the z-axis to generate the 3D shape. Exactly how far each vertex is lifted is defined by a union of spheres along the medial axis with radii equal to the minimal distance to the polygon boundary.

 

   

Figure 1 - Creating the 3D Teddy shapes from a 2D polygon

Generating the morph

 

After the user has drawn an initial and final object, a sequence of intermediate polygons defining the morph sequence is generated using my implementation of the 2D version of the algorithm described in [1]. Each of these intermediate polygons is converted into a 3D object as described above and played as a smooth morph sequence. Figure 2 shows a few steps in a morph sequence generated using this approach. Notice that the topological changes are handled gracefully and automatically.

 

  

 

Figure 2 - A sample morph sequence generated in Tedimorph

Results

 

The following movies demonstrate some of the results achieved using my program.

 

 

Please e-mail me with any questions or comments.

 

[1]  R. L. Blanding, G. M. Turkiyyah, D. W. Storti, M. A. Ganter. Skeleton-based Three Dimensional Geometric Morphing. To Appear in Computational Geometry-Theory and Applications, special Issue on VR. March 2000.