TITLE: Philosophy 101 NAME: Derek Owens COUNTRY: USA EMAIL: xenophon@mindspring.com WEBPAGE: http://www.mindspring.com/~xenophon/raytrace TOPIC: school COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT JPGFILE: phil101.jpg ZIPFILE: phil101.zip RENDERER USED: POV-Ray 3 for Linux RENDER TIME: 33 hours HARDWARE USED: iP5/133, 32M IMAGE DESCRIPTION: This is simply a secne from a college library. It is not based on any particular library in existence, just one that I imagined. DESCRIPTION OF HOW THIS IMAGE WAS CREATED: This image is an example of extensive use of constructive solid geometry. I think the most impressive parts of the image are the bookcases and books, the plants, and the chairs. I will discuss each. To make the books and their title, I had to write a function to generate a book with a random size, random color, and random title (selected from a list) and random font (also in a random color). This, of course, means that I had to figure out how to make to make function calls in the POV-Ray 3.0 scripting language. "But wait!" you say, "POV-Ray doesn't support function calls! That's only for more sophisticated languages, not simple scripting languages!" So you thought! :) It was really pretty simple. I just used include files to simulate functions. I wrote a file called book.f (the f stands for "function") which chooses a random size and random texture for the book (within certain limits). A simple loop is set up, and each time through the loop the line "#include book.f" is encountered. This causes the book.f file to be read and parsed at that point, just as if a function were being called during a program execution. All variables are, of course, global. The book.f file in turns calls a file called booktexture.f as well as a file called title.f to select the texture and title. The title.f file gets the next sequential author and title from a list and scales it to fit neatly on the spine of the book. Using this technique avoids the tedious work of individually placing all the title and authors with their individual textures and fonts by hand. The computer does all the tedious work. After all, that's what computers are for! All the books in the image have titles, even the ones in the distance that are too far away to read. In my opinion, this use of include files to simulate function calls is the most innovative aspect of this work. For that reason, I am including the source files for these portions of the image. The chairs were all CSG. I took the rim of a quarter of a cylinder, scaled it and reproduced it to make the lattice-type back of the chair. I then stretched this out in the Z direction, and took the intersection of that object with a vertical cylinder to get the characteristic curvature that one expects in the back of a chair. The plants are made from various operations on parts of cylinders. They take a long time to render. The Rembrandt and the DaVinci paintings are graphics images I found somewhere on the internet. I am sorry I cannot be more specific about the source, but I don't remember. They will easily turn up in a web search, though. The Rembrandt is entitled "Aristotle Contemplates a Bust of Homer" and I believe the DaVinci is one of his self portraits. The titles of the books, as well as the paintings, represent some thinkers who are either my favorite or who have made, in my opinion, some significant contributions to the history of thought. DaVinci in particular has elicited a tremendous amount of respect from me ever since I first learned about him and his work. That was several years ago when I was in, of course, school. Derek Owens 4/28/97