TITLE: Toys
NAME: Aaron Gage
COUNTRY: USA
EMAIL: agage@mines.edu
WEBPAGE: http://www.mines.edu/students/a/agage
TOPIC: Toys
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
MPGFILE: toys.mpg
ZIPFILE: toys.zip
RENDERER USED: 
    POV-Ray 3.0 for Linux

TOOLS USED: 
    mpeg_encode for MPEG-1 compression. xv used to convert poster
         from Targa to JPEG.  Photoshop for wallpaper texture.
         Pen and paper, calculator for modeling.

CREATION TIME: 
    I lost track after about 500 hours of rendering...

HARDWARE USED: 
    486DX2/66 w/32MB RAM, Pentium Overdrive 83 w/32MB RAM, both
         running Linux 2.0.33.

ANIMATION DESCRIPTION: 

        What better role for toys to play out than a battle for control of
the universe?  On one side is the free world, that of the Legos, owners of
the most powerful known source of energy.  Their nemesis, the evil robot, wants
to use
that energy to further its plans will stop at nothing to get it.  In times of
such stuggle, you never know who will save the day...

        In other words, one of my memories of toys was waging little battles
across the floor of a bedroom or hallway.  The stakes were usually whatever
I could find lying around, and the contestants always fought desperately,
but somehow, the good guys usually won.

DESCRIPTION OF HOW THIS IMAGE WAS CREATED:

        This animation would have been a little more detailed had I not
thought it was due two weeks later.  Anyway, here is a quick description of
the objects in the animation, and most of these should be in the zip file
in the form of .inc files.  All objects used were made for this animation.

        The house was the single most complex part of the animation.  The
railing was made from a prism, supported by a number of wooden pillars.  Each
pillar was a box with a subtracted lathe, which is how that kind of pillar
is usually made anyway.  The wooden floor tiles were copied from a single
prototype, but there are about five thousand of them anyway.  The power outlet,
ceiling lights, window and door frames, door, and baseboards are all simple
CSG, and they should be included.  The wallpaper I made by using Photoshop
to make a very simple flowery pattern and add some noise behind it.  This
worked out very well.

        The lego blocks were made with simple CSG, then the castle was put
together with loops.  The cannons, evil robot, teddy bear, and bouncy balls
were all simple CSG as well.  The green, distorted overlay was done by
placing part of a plane in front of the camera.  This then had text set in
front of it with a high ambient value.  The blinking cursor and everything
else was just done by manipulating clock values.  The actual distortion was
done using refraction in certain bands.

        The most difficult part of this animation was calculating motion for
things like bouncing balls, flying legos blocks, and smooth camera motion.
Most of these involved writing out physics equations, figuring out what
gravity should be for a particular set of frames (since the time scale
affected this) and determing the velocity with which the object would
bounce.  Most of my camera motions are based on the expression
distance*(1-(cos(clock*pi)/2 + 0.5)) which produces really smooth starts and
stops.

        I'll admit that parts of this animation go by pretty fast.  I was
attempting to stick with a fairly believable pace, making things happen as
fast as they really would.  If all else fails, try viewing it at slightly
under 30 frames per second.

        End-of-text-file rant: I found out the hard way that the Microsoft
Active Movie MPEG player has some problems with non-standard MPEG-1 streams.
When using mpeg_encode, I could have avoided re-compressing the entire movie
for submission by keeping groups of previously encoded frames on hand.
However, this involves setting the GOP size to 7, which causes MS Active Movie
to halt regularly and skip half of the frames.  In order to be judged without
this problem, I had to spend ten hours recompressing the animation from the
beginning.  End of rant.

VIEWING RECOMMENDATIONS: 

        MPEG-1 player, no audio needed.  30 frames/second.  Can be enlarged
        with no real reduction in quality.  True color (24 bit) recommended.

