4. Experimental Results

4.1 Performance Evaluation and Morphing Examples

In Figure 14, we show an example of morphing from a baby head to a man head. In this example, the number of morphing patches is four and each patch is illustrated using a different color. In addition, there are seven extra feature points (i.e., 4 eye corners, 1 nose tip, 2 mouth corners) used for warping. Figure 14 (c), we show some timing information and the geometric information of two models for this experiment. Times are average execution times. Our algorithm is performed on a PC with Pentium III 800 and 128MB. Note that our code is not fully optimized and more improvements can be done. All tasks are computed very fast. For this example, the user interaction time to specify the extreme vertices for patch decomposition is about 0.5-1 minute. Our results are very fast compared other recently reported timing information in [3,4]. Some experimental comparison is made in the end of this section.

(a) Input models are decomposed into four morphing patches.

(b) A morphing sequence from a bay head to a man head.

Model

Vertices

Triangles

Embedding

Time

Warping

Time

Merging

Time

Baby head

570

1136

<1 sec.

<1 sec.

<1 sec.

Man head

1954

3904

<1 sec.

<1 sec.

 

(c) Timing information for morphs between a baby head to a man head.

Figure 14. Morphs between the models of a baby head to a man head.

 

In the following, we also show other interesting examples in Figure 15 and 16.

(a) Both cow and pig are decomposed into two morphing patches. It takes about 15 seconds for users to specify extreme vertices for decomposing each model.

 

(b)   A morphing sequence from a cow to a pig.

 

Head

Body

 

 

Cow

 

 

 

Pig

 

 

Merging

(c) Embedding results with warping. There are two embeddings (i.e., two morphing patches) per each model.

Model

Vertices

Triangles

Embedding Time

Warping Time

Merging Time

Cow

2903

5803

1.2 sec.

<1 sec.

<1 sec.

Pig

3584

7164

1.5 sec.

<1 sec.

(d) Timing information about morphs between a cow and a pig.

Figure 15. Morphs between the models of a cow and a pig.

(a) Both baby and pig are decomposed into five morphing patches. It takes about 80 seconds to specify extreme vertices for decomposing each model. Note that in this example, we explicitly show the extra features points used in warping.  

(c)    A morphing sequence (side-views) from a baby to a pig.

(d)   The same morphing sequence rendered from another view.

Model

Vertices

Triangles

Embedding Time

Warping Time

Merging Time

Baby

2055

4106

<<1 sec.

<1 sec.

<<1 sec.

Pig

3584

7164

<<1 sec.

<1 sec.

(d) Timing information for morphing from the baby to a pig.

Figure 16. Morphs between the models of the baby and a pig.

4.2 Performance Comparison with other Work

Recall that our work is closest in spirit to Gregory et al.’s [3] work and Alexa’s work [4]. The former was evaluated on SGI Onyx 2 and the latter was on a SUN Ultra 10. We test our method on a PC with Pentium III 800 and 128MB. In [3], there is no detailed timing given for each task. Roughly, their algorithm takes about 1.5 minutes to compute merged embedding for models with number of triangles ranging from 5000 to 8000. However, animators require several hours to decompose models into more than 50 morphing patches. It seems not to be very practical for daily use. Alexa’s work [4] embeds each model on a 3D sphere and computes the merged embedding on this sphere. To experimentally compare this work with ours, we decompose the model into a large patch and a small patch by our algorithm, and evaluate the performance for the large patch only. We should note that the timing spent on a small patch is very small and can be ignored in this experiment. This evaluation is shown in Figure 17.

(a)    Both models are decomposed into a large patch (i.e., yellow color) and a small patch (i.e., orange color).

Cow (Large Patch)

Pig (Large Patch)

Merged (Large Patch)

(b)   Embedding and merged embedding results of the large patch.

Model

Vertices

Triangles

Embedding Time

 (Large Patch)

Merging Time

(Large Patch)

Cow

2903

5803

1.8 sec.

     1 sec.

Pig

3584

7164

1.9 sec.

(c)    Timing information for the embedding and merging

Figure 17 shows the experiment to decompose a model into a large patch and a small patch.

For performance comparison, we give two performance tables reported in [4] for several models.

Table 1. The performance of the merging algorithm proposed by [4]. The timing information is given in the upper triangle matrix. The number of vertices of the merged model is given in the lower triangle matrix.

Table 2. The performance of the embedding algorithm proposed by [4].

For our example in Figure 17, the sum of the vertices of the cow and the pig is 6487, and the sum of the triangles of the cow and the pig is 12967. Our example can be roughly corresponding to the Pig-Horse case (the sum of vertices is 6418) in Table 1. The merging algorithm proposed by [4] takes 4.2 second, but our merging algorithm only takes about 1 second. Furthermore, let us see the times of embedding in Table 2. For pig and piglet models, the embeddings take about 277.9 and 113.1 seconds, respectively. However, ours takes less than 2 seconds. In this respect, ours performs significantly better than [4]. Finally, we should also mention another work [5] that was evaluated on SGI Onyx 2 with R10000 processor. Unfortunately, [5] does not provide detailed timing information for each task. However, in [5] the user interaction time ranges from 5 minutes up to 15 minutes to decompose models. For the most complex example with 11464 triangles, the embedding can be computed in less than 5 seconds. The merging takes less than 3 seconds. In contrast, we do not require too much time in the user interaction time. As shown in Section 4.1, both embedding and merging are computed very quickly (in less than 1 or 2 seconds). Finally, we conclude that our performance is comparable to or even much better than the above state-of-the-art.