I believe someone was discussing the T1000 "melt" morph effect from "T2: Judgment Day" on the Imagine Mailing List. I posted a reply as to how I would, if I were them, write a program to perform the melt, and this got me really thinking about it. I've been wanting to learn C++, so instead of re-using T3DLIB to mess with the Imagine objects, I decided to put my money (uh, er... source code) where my mouth was and write a program in C++ to perform the morph, thereby helping me to learn the object-oriented paradigm at the same time. It takes a single object, and then produces a given number of frames that "melt" the object down into a round puddle. I have tried it on a couple chess pieces and Carmen Rizzolo's NCC-1701-D (thanks, Carmen!), and the results are interesting. I like the melts of the chess pieces, but the melt of the Enterprise is rather bizarre, and probably not terribly usable. But I had expected this, because the way I designed the algorithm, it works best on "star-shaped" objects. In a star-shaped object, you can find a single point within the object such that all rays casted outward from that point intersect the object's surface once and only once (i.e. hits only one face). And specifically, objects that are block-ish or vertically cylindrical in nature. The resulting objects are morphable within Imagine. In other words, I only modify the location of the points in the object such that the objects' topologies are identical to the original (all points, edges, and faces corresponding one-to-one in the same order). So we can crank out 10 objects, and then let Imagine smoothly morph the in-betweens if you want more frames than 10. I'm now thinking of writing up an article about the algorithm and sending it to a magazine (to get my name in lights so I can land that job at ILM, and also for a couple bucks :-), and then after the article comes out, just release the code into the public domain. So anyway, here is an example of what it does to the Imagine 2.0 "cow.new" object. The effect, as you can see, is rather bizarre. :-) "cow_010.iob" is the original "cow.new" object. Comments are welcome, of course. -- Glenn Lewis glewis@pcocd2.intel.com