Updated: March 28, 2011
POV stands for Point of View, Prisoners of Var (no such thing, really) and Persistence of Vision Raytracer. We're interested in the last option, which is a superb-quality, free 3D creation and rendering program. If you think my work with Google SketchUp is impressive, wait till you see what POV-Ray can do.
The inspiration for this article came from John, who asked me about the installation of the program on Linux, since he was having trouble with the latest beta. Rather than just showing you how extremely easy it is to setup POV-Ray (povray) on Linux, I will also give you a short demonstration what this mighty tool can do. But POV-Ray also runs on other platforms and it comes with all kinds of cool surprises. Who knows, maybe, one day, there shall be a few more stunning models featured in the 3D art gallery section.
Today, we will focus on Linux. There's going to be a sequel discussing the Windows version, then we will also dabble in plugins and whatnot. While you're at it, don't forget to check my Kerkythea article. 'Tis another 3D art masterpiece.
If you happen to be using Ubuntu and family, just head into the Ubuntu Software Center and search for povray. Do install the povray-include package, as it will help you get your work done.
The program is command-line only for Linux, although you can install GUI frontends, to help you get started. You can find a handful of useful resources on this page. Specifically for Linux, you might be interested in yonder collection. Furthermore, you may want to consider KPovModeler, although you will have to compile the program on your own, as it is not included in the default repositories.
Personally, I don't think you need anything, since modern text editors come with syntax highlighting and lots of other cool features. However, for complex projects, you might need extra aids.
Wait, what is raytracing?
Ah, good question. Take a look at the official explanation. The technical description should give you a good idea what we're dealing with. Here's an excerpt:
Ray-tracing is a rendering technique that calculates an image of a scene by simulating the way rays of light
travel in the real world. However it does its job backwards. In the real world, rays of light are emitted from
a light source and illuminate objects. The light reflects off of the objects or passes through transparent
objects. This reflected light hits our eyes or perhaps a camera lens. Because the vast majority of rays never
hit an observer, it would take forever to trace a scene.
Ray-tracing programs like POV-Ray start with their simulated camera and trace rays backwards out into the scene. The user specifies the location of the camera, light sources, and objects as well as the surface texture properties of objects, their interiors (if transparent) and any atmospheric media such as fog, haze, or fire.
Getting started with POV-Ray
Using the documentation, I was able to get underway rather quickly. POV-Ray uses a language similar to C and Matlab, with mathematical expressions that define your coordinates, position and shape. To work with POV-Ray, you will need a decent knowledge of vectors and calculus. For best effect, you should be able to describe any geometric shape using fancy equations. It helps if you're a physicist or have done a bit of programming before.
But do not be alarmed. It's not all geeky science. However, please do remember that without proper imagination and 3D thinking, you won't get too far. After all, it's art, and it takes some talent.
Going through the documentation, I was able to draw a handful of colorful spheres within minutes. Some patience is needed - but above all, do not be frightened. Looking at POV-Ray can be intimidating on the first glance, but if you work your way through the instructions one line at a time, you will soon start enjoy yourselves.
What you need to do is create a text file called something.pov and fill it with POV-Ray code. Then, from the command-line, run povray against the file, specifying output filename, size and several other parameters.
This is my example:
povray +Idemo.pov +Odemo.tga +FT +W600 +H480 +V -D +X
I'm using the input file demo.pov to render the output file demo.tga, sized 600x480px, plus a handful of other parameters, which you can check using -h flag. Don't be afraid of the command line, it's not going to bite you.
And the output:
As you can see, rendering a single sphere takes very little time, less than one second total, on a powerful machine, in this case my LG RD510 laptop with a revvy P7450 dual-core processor and decent 4GB RAM, loaded with most sexy Macbuntu.
And this is the simple code what does it:
Try it yourself. Grab the code and start fiddling. You can change the camera location and angle, change the sphere size, texture and color, and edit the light source. Once you get hang of these basics, you will find it much easier to work with more complex designs.
Several examples are available with the software package, so you can go wild experimenting and testing features, shapes, colors, as well as the actual code.
Hall of Fame
In this section of the POV-Ray website, you can check some extremely beautiful and stunning work done with this program. Honestly, it's breathtaking. I've taken the liberty of downloading a small-size image of several of the featured models, but you should definitely explore the entire collection.
Another masterpiece by Gilles Tran, who has released the picture under public domain, and is considered one of finest images on English Wikipedia - rightly so:
I'm absolutely stunned and humbled by the quality of this work. As a would-be artist, I can only marvel at the beauty. Can you comprehend the effort, the dedication, and most of all, the imagination, taken to do something like this?
You may also be interested in the beta version, since it adds support for multi-core processing, which is what you want if you have a modern, powerful CPU. This will considerably shorten the rendering times. In general, the more the merrier. I'd say, cram the mobo with as much RAM as you can, go for a dual-socket one if you can and load it with i7 processors or alike.
More more stuff
Oh, there happens to be a Google SketchUp plugin for this one, too, much like Kerkythea. This means I'm also going to try to molest my models using POV-Ray. Stay tuned for updates. Many thanks to Peter for his recommendation. For now, a handful of tiny teasers, my Tank model and the exclusive preview of upcoming spacecraft model.
Recently, I've ramped up my dabbling in 3D art. I'm going to continue exploring Kerkythea. I have shown you the program basics, but our next task is to start using the SketchUp plugin to export my 3D models. Hopefully, this won't prove a too dazzling task for my brain. I will also try Blender. There's another cute Windows-only program called anim8or. That shalt be tried, too. More plugins, exports, animations, fancy stuff.
With luck, in the coming weeks and months, the 3D section will grow beyond what it has today, covering all sorts of otherworldly beauties. But let's focus on POV-Ray. Truly amazing. I'm speechless.
True, the program is very geeky. The fact you write code, play with vector coordinates and then run command-line only makes it quite inaccessible to the vast majority of people. But if you're an artist with a bit of geeky inclinations, you will love the power of this tool. The potential is just staggering, almost frightening. I give it 9/10.
And that would be all. Like my Google SketchUp on Linux tutorial, this one goes both into the Computers and the 3D art section. Have fun. For POV-Ray veterans out there, if you have tips and tricks you'd like to share, please do it. This is a good opportunity to get some exposure, especially if you're a vastly talented artist. Party on!
Many thanks to John and Peter for their emails! Index teaser and article teaser reproduced from the original Glasses work, in public domain. Other third-party images are the property of their respective owners. Please consult the POV-Ray Hall of Fame for more details.