TITLE: The Wizard's Banishment NAME: Samuel J. Goldstein EMAIL: libelle@webbwerks.com WEBPAGE: http://www.cyberverse.com/~meander TOPIC: Magic COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT. JPGFILE: banishme.jpg ZIPFILE: banishme.zip RENDERER USED: POV-ray 3.01 TOOLS USED: Paper & Pencil RENDER TIME: 2 hours 25 minutes 42.0 seconds HARDWARE USED: SGI Indigo2/200 w/64M memory IMAGE DESCRIPTION: The Wizard's arrogance became too great, and his cruelty was feared throughout the land. The Elders gathered together, and with their combined strength, placed him in spirtual banishment from the Realm. His prison, held aloft by five magical dragonflies, drifts across the lands. He will spend his remaining years floating uncontrolled, seeing the freedom that will never again be his. DESCRIPTION OF HOW THIS IMAGE WAS CREATED: A former roommate of mine who worked in the Computer Special Effects industry once said to me that using actual geometry when you could use image/transparency/texture/bump/displacement maps was criminal. So, I guess I'm ready to be arrested. This image goes way overboard in the geometry department. It's ALL geometry (my understanding is that, in POV-Ray, height fields actually generate geometry before rendering). The Wizard's prison is an icosahedron made up of hundreds of cylinders and spheres. I tried doing the same thing using textures on a solid object, and it just didn't look as good. So it uses a more generalized include file ("MoorIco.inc") to create an icosahedron from small triangles. Any base triangle defined between the points <0,0,0>,<1,0,0>,and <1,0,1.7320508> will be copied and mirrored, and each face of the icosahedron will consist of six of these smaller triangles, so the entire icosahedron will be 120 times as many primitives as your base triangle. This particular image uses 5160 cylinders and spheres to make up the icosahedron. Yikes! The chains use a modified version of Rob Antonishen's chain11.inc. (the original can be found at: http://www.geocities.com/SoHo/7865/chain.htm) I changed the include file to support a semi-random twisting of the links in order that they look a little more natural. In the final image, it doesn't make much difference. I was hoping to find a good picture of a dragonfly on the 'net to use as a model. What a wonderful place the web can be -- there's a site out there that has normalized-scale side and top view pictures of hundreds of kinds of dragonflies! (Check it out at http://www.our-town.com/dragonfly/). The first version of the picture used the same dragonfly, rotated and translated around. This, of course, looked intolerably "cut & paste." So, I ended up creating the dragonfly.inc include file, that randomly permutes the positions of the legs and head. It still was lacking, so I added the "multiple exposure" wings, and a random "flap" direction. It was still lacking something, so, on the advice of friends, added a variable amount of "curl" to the dragonfly's body. Now they were starting to look like something. The landscape was pretty much straight-forward. I generated a 400x400 landscape by rendering the "mountGen2.pov". Then I wanted trees on the hills. I didn't want them to be too complicated, since they'd be distant in the image, and small. But I wanted them to look nice. So, again, I wrote an include file ("forest.inc") that build three different random trees. Basically, since they're supposed to be conifers, there's a central trunk, and branches at a random angle along the length of the trunk. The branches are either small tapering cones (for the bare trees, or the ones without foliage), or larger, spreading cones with a mostly-transparent needle texture on them. Although they'd look terrible closer up, for the purposes of this picture, they work fine. The last part was the fog. I tried various groundfogs to no avail. I wanted a chunky, wispy fog that was highly turbulent. This was the best I could do, and it uses overlapping halos -- s l o w. I struggled with the various parameters, and really don't fully understand how they work. This was just trial and error. The way I understand halos to work doesn't seem to be the way they actually work. Especially with this negative transmissivity stuff. Oh well. All of the include files have more information about how to use them. Sorry to write a book here. I should have just let the source speak for itself...