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


