EMAIL: koden@mindspring.com
NAME: Phil Brewer
TOPIC: Loneliness
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
TITLE: In Rememberance
COUNTRY: USA
WEBPAGE:
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.







