by Golubitsky Dany and Dobrovinsky Ron
Supervised by Sagi Katz

Abstract

Three-Dimensional (3D) Metamorphosis is the gradual transformation of a source 3D object through intermediate objects into a target object. 3D Metamorphosis of polyhedral surfaces has been a lively topic of research for many years. In order to generate a pleasing morph sequence, it is usually required to find a good correspondence between two surfaces before applying an interpolation. A common approach for finding a correspondence between two given polyhedra is to look for a common embedding of their topologies (i.e., their one-skeleton graphs). This is done by projecting the models onto a common parameterization domain, merging their one-skeleton graphs in this domain, and projecting the merged topology back to the original models. In our project, we implement an algorithm for establishing a correspondence between two disk-like objects. In order to do it we project both of the object onto Two-dimensional (2D) ideal disk, merge the two projections to get topology that can be applied to both of the objects and then project the merged topology to both of the objects. Thus we get two different objects with the same amount of vertices, triangles and with the same correspondence graph. Simple linear interpolation than may be used to convert one object to another and vice versa.



Process Overall

In order to implement the metamorphosis we have to devide problem into two sub-problems. The first sub-problem is the establishment of a correspondence from features on the source object to features on the target object. Once the correspondence has been established, the second sub-problem is the creation of a sequence of in-between objects done by interpolating features of the source object to their corresponding features on the target object. This step is referred to as the interpolation problem. In our project we used simple linear interpolation between corresponding features, focusing on the correspondence problem.
Given two polyhedral surfaces, there are infinitely many ways to transform an object into another. However, to achieve good-looking results morphing sequence should seem smooth and continuous maintaining the shapes of the objects as much as possible during the transformation. This criterion is subjective and depends on the context in which the morphing is performed. Another, less subjective criterion is the prevention of self-intersection throughout the morph.
Various techniques related to the polyhedral surface morphing have been proposed. A large family of algorithms is based on the construction of a common mesh which merges the topologies of the given objects
In our project we follow 3 main stages. First, we take two disk-like objects and create a parametric tiling of them on ideal disks. Second, we create a metamesh of the objects that can be restored both to object A and to object B. The restored objects, therefore, will have exactly the same number of vertices and faces and the same correspondence between them. Each vertex and each face will have it's place on each object.


Process overall diagram


Embedding disk-like objects

The main concern in embedding disk-like objects is how to map the patches such that the local geometry of the mesh is preserved as much as possible. There are couple of methods available. The first (simple) one is barycentric method. It is relatevely easy to implement but its results are far from perfect. The second method is harmonic mapping. It produces better results, but, as we discovered in our project, has a very big limitation - it can not be aplied to meshes that have triangles with obtuse angles. You can read about both of this methods in our Project Report. Here we want to show you two examples:

Barycenric mapping example


Harmonic vs. Barycentric mapping of the Cube


We can see that harmonic mapping (from the right) gives much better results than barycentric (in the middle).


Merge

In order to produce a full correspondence between two disk-like patches, a common vertex/edge/face connectivity graph should be built. This is done by merging the embeddings of the patches. The merge process consists of three steps: building vertex connectivity matrix and edges matrix, finding intersection points between the edges, and finally, creating triangles metamesh containing all the vertices from object A and all the vertices from object B. All steps are described in our Project Report.


Tools

  • The project was implemented using Matlab program.
  • The Video files processing was made by Virtual Dub application.


Results

Here you can see some examples of metamorphosises we produced:

Metamorphosis of a Cube into a Rhino's Head [Video Clip]





Metamorphosis of a Cube into a Rhino's Head [Video Clip]




Acknowledgment

We would like to thank our project supervisor Sagi Katz and Head of the CGM Laboratory Dr. Ayellet Tal for their substantial assistance, their knowledge and cooperation.We also wish to thank all CGM Laboratory staff and especially Lab Engineer Doron Tal for providing excellent working conditions and a good atmosphere.


Related Documentation

  • Project report [Adobe PDF - 2.49 MB]
  • Video Examples:
  • Metamorphosis of a Cube into a Pyramid [Video Clip]
  • Metamorphosis of a Pyramid into a Cat [Video Clip]
  • Metamorphosis of a Tiger's head into a Rhino's head [Video Clip]
  • Metamorphosis of a Monkey's head into a Cat [Video Clip]
  • Matlab Publishing [Publishing.HTML]
  • Powerpoint slides [PowerPoint PPT - 2.505 MB]
  • Source Files [ZIP - 16.5 KB]