Software I've found that I think is particularly useful or interesting.

Use any software mentioned here at your own risk.

CFS Home



05/02/2003: POV-Ray [>> Go]

    POV-Ray is a graphics program that lets you create a 3-D scene and then render it into a 2-D picture (like the picture to the right). POV-Ray is a raytracer; in order to render a 3-D scene, it actually simulates the paths of photons from one or more virtual light sources to the virtual camera, taking into account material reflectivity and opacity, angles of deflection, colors, and other visual and physical traits of the objects in the scene. The results can be startlingly realistic computer-generated pictures, but be prepared to brush up on your geometry first.

    You use a programming-like language to define your virtual scene in POV-Ray, then render it to see what it looks like. If you've used commercial raytracing and 3-D modeling software, you're probably used to being able to drop objects in a 3-D space and move them (and change their shape) with a mouse to get the desired effect. POV-Ray dispenses with that and gives you a pure text-editing environment, albeit with tons of menus to drop code for particular objects into your scene description. Here's an example of a simple POV-Ray scene:

include ""

camera {
    location <0, 1, -10>
    look_at <0, -1, 10>

light_source { <10, 10, -10>, White }

background { color SkyBlue }

plane { y, -1 
     pigment { Yellow } 
     finish {reflection {0.75}}

sphere {
     <1,0,0>, 2
     pigment { White filter .5}
     finish {
        ambient 0
        diffuse 0
        reflection .25
        specular 1
        roughness .001
     interior { ior .99 }
First, I specify where in 3-D space the camera is (the vector <0, 1, -10> says that the camera is at zero on the x axis (left/right), 1 on the y axis (up/down), and -10 on the z axis (forward/backward)), and where it is looking (in this case, it's looking down and forward (into the computer screen)). Then I say that I've got a source of white light at <10, 10, -10>. Then I give the background a default color of "SkyBlue" (a pre-defined color that's a light blue). Then I define a yellow plane (i.e. a floor) that is perpendicular to the y axis, and crosses the y axis at y = -1; and to make things interesting, I say that the floor reflects 75% of the light that shines on it. Finally, I define a sphere (the first vector says where it is, the following number (2) is its radius (i.e. size)) and the sphere's visual properties - it's white, it is 50% transparent, the code within the finish{} block controls its reflective properties, and the interior{} block controls how it refracts light going through it.

    Of course your basic 3-D building blocks are all available - cubes, spheres, cones, cylinders - but POV-Ray also includes dozens of other objects to help you build your 3-D scenes, like meshes, polygons, prisms, surface-of-revolution objects, height fields, polynomials, and more. A dozen or so "normal maps" let you add texture to objects, and there are many other ways to affect how your objects look (reflectivity, transparency, smoothness, etc.). I don't have any commercial software to compare it to, but POV-Ray seems to include a lot of options for the 3-D designer.

    POV-Ray includes a nice tutorial that quickly gets you started creating your own scenes, and the application help is great, even attempting to walk you through some of the more complicated mathematics behind some of what POV-Ray does. POV-Ray has a built-in capability of creating a series of renders, allowing you to automatically change aspects of the scene for each still image, which can then be combined to create movies of your virtual scene (ironically, I have not found a good free tool to combine still images into a movie file; if you know of one, send me e-mail); again, a great tutorial walks you through the process of setting up your first animation.

    There are a number of Web sites about POV-Ray, providing tutorials, image galleries, pre-built objects that you can add to your own scenes, and more. Good places to start are POV-Ray's own links collection, Yahoo's POV-Ray directory, and similar directories (here and here) at The image at the top-right uses the pre-built columns objects available at the POV-Ray Objects Collection site. (If you want to download the .POV file that generates the spheres-on-columns image above, click here.) The POV-Ray Web site also hosts its own discussion groups on various topics, so you can learn from other peoples' questions and answers, or post your own question or answer.

    For the graphically or mathematically inclined, POV-Ray is a great alternative to high-priced commercial 3-D software, with what I believe are comparable results. Its documentation is great (especially for free software) and the the application seems stable (it's never crashed on me, anyway). POV-Ray could even be used to introduce children (or keep them interested) in geometry, basic programming-like skills, and 3-D graphics. I think POV-Ray is excellent, and while I don't use it as much as, say, MultiDesk or WinAmp, I don't plan on ever removing it from my hard drive.

©2019 Tyler Chambers