TITLE: The spider robot from outer space
NAME: Juha Nieminen
COUNTRY: Finland
EMAIL: warp@iki.fi
TOPIC: Robot
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
MPGFILE: spider.mpg
ZIPFILE: spider.zip
RENDERER USED: 
    POV-Ray 3.1

TOOLS USED: 
    Colefax's lens flare and galaxy inlcludes, cmpeg.

CREATION TIME: 
    About 1.5 days.

HARDWARE USED: 
    Pentium II 350MHz

ANIMATION DESCRIPTION: 

  A race of explorers and invaders seek for alien worlds to conquer and alien
races to destroy and put into slavery. They find a promising planet and send
a small robot to explore it and search for life forms. Unfortunately the planet
seems deserted. The robot only finds a strange but uninteresting shiny rock
formation.


VIEWING RECOMMENDATIONS: 

  It works best with Mediaplayer in Windows. Haven't tried with anything else.


DESCRIPTION OF HOW THIS ANIMATION WAS CREATED: 

  The animation is made entirely with hand-written povray code.
  It is made of three scenes:
  1. The spaceship arrives to Earth and sends the robot. Nothing special here.
Perhaps I should have put more effort in the spaceship instead of just using
two spheres, but I was tired of making the 3rd and 2nd scenes (I made them
in reverse order). Some trigonometry was used to make the animation smoother.
  2. The robot falls on the ground. It was difficult to find a camera angle
so that it would show the ground, some buildings and the robot falling.
Finally I choosed the ultra_wide_angle camera with a large angle to make
everything fit. Perhaps moving the look_at of the camera would have been a
better solution, but I didn't want to move the camera because I was really
running out of mpg-place (the 3rd scene was taking 4.5 Megs already). I think
this was a good compromise.
  3. The robot walks over the city. This was the toughest part. Some details:
  - Some math was used in the robot to achieve simple IK for the legs. I made
    a macro which takes 4 coordinates, one for each leg, which places the robot
    so that each leg is located the respective coordinates and the body
    centered with respect to them. This way it was easy to just move the leg
    coordinates and let the macro do the rest. File-I/O was used to simulate
    persistent variables needed for the leg coordinate calculations.
  - The problem of the robot walking on the buildings was solved by using
    an array of heights so that the leg would land at the proper height in
    each location. The movement of the legs follow a half-sine-wave.
  - The extremely long render time (over 1 day) was caused by the area light
    used and the number of objects (each lit window is one box). The rendering
    time of each frame was about 4 minutes.

  I had also the problem of fitting all the 1012 frames into a 5 Megs mpg.
After much trying I finally found a good combination in the ctl file of cmpeg
so that it compressed a lot without too many artifacts. Actually it compressed
so well that I could have added hundreds of frames more.
  The third scene takes almost 4 Megabytes of the mpg (due to the moving
camera). The 2nd scene takes just a bit (about 100k or so) and the 1st scene
the rest.


