CSE 557 – Computer Graphics Final
Project
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.
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
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.