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.