CS 424: Computer Graphics, Spring 2012
Lab 10: A Bit of POV-Ray

We talked about the POV-Ray ray-tracing program and its scene description language in class on Monday, and you have the notes from that day. For today's lab, you will create two images using POV-Ray.

This is, hopefully, a relatively short lab. It is due by next Saturday morning, April 14. You should add the images that you produced to your web site, along with links to the .pov files that you used to produce them.

Exercise 2

For your first image, make an arrangement of one very reflective object surrounded by at least four other objects. All the objects should lie on a infinite plane. The plane should have some sort of pattern, such as hexagons or checkerboard. You should use a variety of materials on the objects. You should try to produce something that looks good.

The file starter.pov defines a scene that contains objects with a variety of materials. To see the rendered image from that file click here. I suggest that you copy-and-paste from that file into your own .pov file.

For posting on the web, you proabably want to convert the PNG image that is produced by POV-Ray to a JPEG image. An easy way to do that on the command line is with the convert utility. For example:

            convert  starter.png  starter.jpg

Exercise 1

For your second image, you should make a scene that uses a lens, as discussed in the notes, and at least one other Constructive Solid Geometry object. In your image, objects should be visible through the lens. If you want, you can do the following old lab from 2004:

           http://math.hws.edu/eck/cs324/s04/lab13_pov/

Extra Credit:

The old POV-Lab just mentioned discusses how to use POV-Ray to create an animation. What you get out of POV-Ray is a set of PNG images of individual frames. The Blender sequencer can read such a sequence and convert it into a JPEG AVI, which you could then post to the web.

For some extra credit, make such an animation using POV-Ray and Blender. I suggest creating the POV-Ray images in a folder in the /tmp directory so that they won't take up space on our file server.