The Main Idea
Shape transformation is very cool. It can be really exciting to see one shape turn into another. This general class of techniques is called morphing, and while it’s exciting to watch, it can be a tricky technique to author and control.
The essential reason that it’s tricky is because shape transformation is as much an artistic statement as a technical one. When we turn one shape into another, we’re saying something about those two shapes, and how they’re related. If we turn a teakettle into an ogre, where should the kettle’s spout go? Should it become the ogre’s nose? The axe in his hand? One of his legs? These are all reasonable answers: only the person using the system can decide what it ought to be for that transformation, at that moment, in that story.
I thought it would be useful to come up with a fast, general-purpose tool for simple types of smooth transformations. This could be used for simple objects, or objects in the background of a scene. It could also be used to get a start on a more artistic metamorphosis transformation, so that the computer can do a bunch of work to get a good start on a morph, and then an artist can come in and change it here and there to tune it up. I wanted something simple and fast, and steered way clear of the difficult “feature matching” problem, which is a treacherous reef that has claimed many ships.
To keep things simple I focused on convex shapes. As you can see in the images on this page (read them like a book, starting in the upper left), the algorithm does a great job of blending one convex shape into another. It doesn’t care at all how many vertices or edges or faces are in either model; the transformation will always look nice and smooth, with no weird popping or shapes passing through one another. When your shapes aren’t convex, I use another algorithm to smoothly turn a concave shape into a convex one before blending, and then the other way around when the blend is complete.
- Glassner, A., “Moves for Converting Concave Polyhedra to Their Convex Hulls”, Patent 5,428,717
- Glassner, A., “Sequencing and Scheduling Moves for Converting Concave Polyhedra to Their Convex Hulls”, Patent 5,317,681