nier

01-12-2008, 11:40 PM

Hello,

I was reading some writings by Kosta Tarzidis and I found this algorithm description which is exaclty what I am looking for. It is as if we mated O1 with O2 and ended up with their newborn kid :)

Let O1->O2 be a morphing between two objects O1 and O2. The algorithm to create a hybrid object is as follows:

1) Compare O1 and O2. Mark as Omax the object with the most coordinates.

Mark Omin the other.

2) Consider an xyz-axis system which passes through the centroid of Omax and

divides it in eight quarter-blocks. Mark each vertex of Omax with a number

corresponding to the quarter-block to which it belongs. This number is called the

orientation number.

3) Do the same for Omin's vertices.

4) Compare each point of Omax and Omin. If the orientation numbers match,

substitute the Omax vertex with the corresponding Omin vertex through the

formula Omin[i] = mod(number of points of Omax, i).

5) Interpolate the remaining (unmatched) points of Omax, so that they fall

between the previous and the next vertex (found in step 4).

This algorithm constructs a hybrid object, which has the topology of Omax, but its

vertices match the vertices of Omin. This object appears like Omin, but topologically it

is Omax.

Doesn't look so difficult. I am working with 2 different polygon objects. But I am facing difficulties to start with it... if anyone could give me a little push, I would be very grateful ;)

Thank you

Daniel

I was reading some writings by Kosta Tarzidis and I found this algorithm description which is exaclty what I am looking for. It is as if we mated O1 with O2 and ended up with their newborn kid :)

Let O1->O2 be a morphing between two objects O1 and O2. The algorithm to create a hybrid object is as follows:

1) Compare O1 and O2. Mark as Omax the object with the most coordinates.

Mark Omin the other.

2) Consider an xyz-axis system which passes through the centroid of Omax and

divides it in eight quarter-blocks. Mark each vertex of Omax with a number

corresponding to the quarter-block to which it belongs. This number is called the

orientation number.

3) Do the same for Omin's vertices.

4) Compare each point of Omax and Omin. If the orientation numbers match,

substitute the Omax vertex with the corresponding Omin vertex through the

formula Omin[i] = mod(number of points of Omax, i).

5) Interpolate the remaining (unmatched) points of Omax, so that they fall

between the previous and the next vertex (found in step 4).

This algorithm constructs a hybrid object, which has the topology of Omax, but its

vertices match the vertices of Omin. This object appears like Omin, but topologically it

is Omax.

Doesn't look so difficult. I am working with 2 different polygon objects. But I am facing difficulties to start with it... if anyone could give me a little push, I would be very grateful ;)

Thank you

Daniel