TITLE: In Rememberance
NAME: Phil Brewer
COUNTRY: USA
EMAIL: koden@mindspring.com
TOPIC: Loneliness
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: inrem.jpg
ZIPFILE: inrem.zip
RENDERER USED: 
    MegaPov 0.7

TOOLS USED: 
    Rhino 2.0, Paint Shop Pro, Spilin Editor, Gforge, Tyre macro

RENDER TIME: 
    3 renders of about 2 hours and 45 minutes each

HARDWARE USED: 
    Athlon 2100+, 512 MB DDR

IMAGE DESCRIPTION: 


On a rainy, gloomy day, a young widow visits the site of her husband's grave to

remember what was torn from her life. 

I don't believe that you can truly experience loneliness until you first
experience 
the companionship and love of a spouse. Once you've experienced that, the most 
lonely and despairing thought one can imagine is to be separated from that
person 
for the rest of this lifetime.


DESCRIPTION OF HOW THIS IMAGE WAS CREATED: 


I started off the scene by modeling the main tombstone. It is my first real work

with isosurfaces and went much more smoothly than I'd anticipated. It is
basically 
a generic sine wave unioned with a box. I copied the opject and applied some 
3D displacement to it, the original I subtracted a heightfield from and
rescaled. Putting 
them back together and throwing a block underneath gave me what you see. Most of
the 
other gravestones are modeled similarly. 

I couldn't very well model a graveyard without some grass. At this close
distance, a 
texture just wouldn't do. I opted to write a macro that would form a fully
parametric 
blade of grass from smooth triangles. Height, width, taper, bend amount, and
level of 
detail are all arguments for the macro. Most of the blades you see consist of
only 6 
smooth triangles to save on memory usage. Even so, there are well over 100,000 
individual blades of grass and weeds randomly sized, rotated, and handily placed
on the 
landscape's heightfield with another macro program. This eats up a very
considerable 
chunk of memory, but I'm very happy with the results.

In fact, when everything in the scene is parsed, I easily exceeded my RAM. This
brought
rendering to a screeching halt. I opted to do several renders, each with only a
portion
of the grass turned on. This allowed me to stay under my RAM cap, which greaty
sped up 
the scene. After all three renders were done, I joined them together with Paint
Shop 
Pro. No pixel modifications were made, so I should be within the post-processing
rules.

The main ground is a heightfield I created in Gforge and then tweaked in Paint
Shop 
Pro to add the rise to the road. The road is a heightfield created in Paint Shop
Pro. 
I created a couple holes in it that I filled in with cylinders to create
puddles. The gravel 
is a bunch of isosurface spheres with noise applied to them. They were then
spread 
randomly over the surface.

The trees were probably my biggest challenge. I wanted to do a very original
image, and 
didn't want to use any of the available macros for tree creation (same with the
grass). 
Programming it myself also gave me extra flexibility. I started off by 
looking through the recursive examples that come with POV. From there I created
a 
rudimentary macro that would recursively create a tree-like structure from cones
and 
spheres. It essentially sent out a branch, and then forked into two branches. I

eventually refined the macro to create a sprout at a random angle and location
from 
the parent branch within some probability. I also added in a small gravitational

property to cause the branches to droop to a degree. This is what you see.
Luckily the 
mood of the image was great for leaving the branches bare. I'm not sure I could
have 
figured out an effective leafing algorithm.

The flower pot is a union of a lathe done with Spilin and an isosurface
heightfield. 
Flower leaves are from my grass_blade macro. The flowers were modeled in Rhino
(just 
one flower), and they were then randomly rotated, scaled, colored, and placed to
give 
the illusion that they aren't all the same.

The raindrops are actually stretched out spheres (slightly twisted to give the
impression 
of a breeze) randomly spread throughout the air. 

The car front end was modeled in Rhino. The tire was made using the Tyre macro
by F. Dispot. 
Textures are pretty generic with the exception of the headlight which has an
image map on it.

The water droplets on the car, umbrella, and close up tombstones are created
with a random 
placement macro made possible by MegaPov's trace function. I used the same
placement 
macro code repeatedly in my scene (grass, trees, weeds, gravel stones,
raindrops, 
flowers). It's a very useful bit of code.

The widow and umbrella were modeled in Rhino. I took some reference photos to
get the 
proportions of the widow right, whish I think was a big help. 

The fence is another macro file. Basically some cylinders and textured prisms.
The macro 
allows it to follow along with the hills on the heightfield. I had originally
planned on 
using a couple triangles to hold the mesh texture (much simpler math), but they
seemingly 
negated the effect of the fog when looking through the mesh texture. Using a
thin solid 
prism cleared this up and looks the same.

After an 88 hour render on my last irtc entry, I was determined not to use
radiosity in
this current scene. But about 3/4 of the way through the project, I was getting
really
disappointed in the lighting effects I was getting with standard lights. I tried
a test
render with radiosity and decided it was a must. On a foggy, rainy day the only
light you
would normally see is diffuse. Using radiosity brought that level of realism
alive.