TITLE: Meta Blob
NAME: Bill Marrs
COUNTRY: USA
EMAIL: bill@apocalypse.org
WEBPAGE: http://www.apocalypse.org/pub/u/bill/
TOPIC: Metamorphosis
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
MPGFILE: metablob.mpg
ZIPFILE: metablob.zip
RENDERER USED: 
    Povray 3.0.2 for DOS

TOOLS USED: 
    Perl for Win95, MainActor to create MPEG from TGAs

CREATION TIME: 
    2 weeks creating script, 2 hours to render frames

HARDWARE USED: 
    Pentium 100, 64MB

ANIMATION DESCRIPTION: 


Continual growth and change; metamorphosis of a sphere into a blob and
back into a sphere again.


VIEWING RECOMMENDATIONS: 


This animation is designed to loop smoothly, please turn looping on so
that the animation repeats over and over.  Don't stare at it too long,
it may hypnotize you.


DESCRIPTION OF HOW THIS ANIMATION WAS CREATED: 


I had planned a more elaborate and totally different animation but
realized I would have no time to do serious modeling.  So, I opted to
focus on animating a fairly simple object.  The scene consists of a
camera, light and blob object, that's all.

I played with a blob until I settled on a cube structure, then decided
to go for a zoom-out and recombination looping sort of thing.  Adding
the wobble to the spheres gave the animation a little pizazz.

All of my work was on the Perl script that generated the pov files.  I
learned a lot about how to do transitions from one phase to another.  I
really think that a formula like this:

$original_value=56.78
$new_value=13.27

loop (index=0 -> endframe)
    $percent = index/endframe
    $value = $original_value*(1-$percent) + $new_value*$percent

..is a powerful one.  The old value fades as the new value surges in a
linear fashion.  For other rounder values I used sin/cos() in 
combination with the $percent value.

I had to do a little trig research to calculate the position of the
light source.  In the scene the camera actually moves around the blob
and the light always stays 5 units behind the camera.  Rotating the blob
itself would have been easier I suppose.

I didn't use any of povray's animation helpers, I found it was easier to
drive all of that in Perl where I could use hash arrays of my objects
to keep track of their state.

I used an iterative process when creating my movie.  In other words, I
first created a fairly simple animation, then added another feature to
the script and created another animation.  Each time I added something
new, and fixed a bug in the previous run.  I found this very satisfying
as I had a working movie from very early on and I was able to leverage
that to think of new ways to improve it as I went along.

I used Dave's Targa animator to create flc animations from the script,
so that I could simply run the script and come back 2 hours later to
find a flc animation.  I used Videdit to view the flc animation.  I
would occasionally save it as avi then convert the avi to mpeg using
avi2mpg1 to see if the size of my mpeg was still within limits.  In the
end I used MainActor to create the MPEG (it uses a high color depth
palette while the other tools seemed to go to 8-bit).  MainActor is
nagware, and it popped up with a nag message every 10 frames of saving,
but in the end it was worth it.  It produced a smaller and nicer MPEG
than any other method I tried.  Also, the tool is fairly easy to use.
I am seriously considering buying it now.

My zip file contains the perl script only (it generates all that is
needed to create the animation with povray 3).

Here are some links to the tools I used:

avi2mpg1        http://www.mnsi.net/~jschlic1/
MainActor        http://www.mainconcept.de/products/index.html
DTA         (search for "dta22b2.zip" on the web)

