TITLE: Evolution of a Ray-Tracer
NAME: Michael Ian Hartley
COUNTRY: Malaysia
EMAIL: michael@kdu.edu.my
WEBPAGE: http://www.angelfire.com/mt/ofolives
TOPIC: EVolution
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
MPGFILE: evraytrc.mpg
ZIPFILE: evraytrc.zip
RENDERER USED: 
    Pov-Ray

TOOLS USED: 
    Pov-Ray editor, brain, pen, paper for the modeling. CMPEG to convert
tga frames into an MPEG file. A program I wrote myself to hack into the TGA
files and change the resolution from 320x240 to 320x200, when my animation came
to 13Mb.

CREATION TIME: 
    about 20 days, including rendering.

HARDWARE USED: 
    Pentium IV, 2GHz

ANIMATION DESCRIPTION: 


My very first ray-tracer was a program I wrote myself in Pascal. It whacked out
a scene (hard-coded)
of some parabolic mirrors, a checkered floor, a plane mirror at an odd angle,
and a black sky. Absolutely no shading or lighting at all, just full ambience.
The image was displayed at 640x480 on
an 8 color display with no dithering. It took about 3 hours on an 8086 NEC
APC3.

My second ray-tracer was a modification of the first. It showed a sphere,
illuminated with a single light source. I used the same hardware, and attempted
dithering to simulated graduated shadows.

My third ray-tracer was Pov-Ray. I think it was version 1 point something at the
time.

This animation shows the evolution of a ray-tracer, applied to a simple set of
shapes.

The first scene shows the shapes at full ambience.
The second scene adds a light source and shadows, refraction, specular
highlights...
The thirds scene transforms the simple shapes into more complicated ones...
The fourth scene adds animation, reflecting Pov-Ray v2's in-built animation
support...
The fifth scene adds complex textures. It also adds some normals to the
textures, but they don't seem to make a huge difference here...
The sixth scene adds radiosity and photons. The viewer may miss this - unless
one pays careful attention to the shadows of the spheres, or the general hue of
the scene as the radiosity from the blue sky becomes evident. Look carefully
also at the shady side of the yellow torus...
The seventh and final scene adds fog and a rainbow...


VIEWING RECOMMENDATIONS: 
    Read the description first, then run the animation
several times,
focusing on different parts of the scene.

DESCRIPTION OF HOW THIS ANIMATION WAS CREATED: 


I planned the scenes and the transformations, including how long each one would
be. Then I modelled the final scene. Once I was satisfied with a given scene's
model, I animated it, then modeled the transition from the previous scene, and
the previous scene itself.

The most difficult transition was from simple shapes to complex ones. How do
cones become a heightfield in a natural way? And how does a single orange
cylinder become two tori of different colours? In the end, I used more
complicated shapes in this transition than anywhere else in the animation. The
cylinder becomes a superellipsoi for 0.75 seconds, then an isosurface for 2.25
seconds until it becomes the two tori. The colour is a function pigment,
supposed to trasform from orange everywhere, to red + yellow in a smooth way
(except for the turbulence I added to make it interesting)

Another transition that stumped me for a short while was: How does one fade
photons in and out? The solution is remarkably simple in the end. For that
transition, there are two light sources at the same location - one with photons
and one without. I would have liked to also fade the photons ior from 1 to 1.5,
but it doesn't seem possible in PovRay 3.5 to have different ior for the
photons rays and for the image rays. 

