The Persistence of Vision Ray-Tracer, or POV-Ray, is a free ray tracing program available for a variety of computer platforms. It was originally based on DKBTrace, written by David K. Buck and Aaron A. Collins. There are also influences from the earlier Polyray raytracer contributed by its author Alexander Enzmann. It is freeware, see "Licensing" below for details.

Features
POV-Ray has matured substantially since it was created. Recent versions of the software include some of the following features:
- A Turing-complete scene description language that supports macros and loops.
- Library of ready-made scenes, textures, and objects
- Support for a number of geometric primitives and constructive solid geometry
- Several different kinds of light sources
- Atmospheric effects such as fog and smoke
- Reflections, refractions, and light caustics using photon mapping
- Surface patterns such as wrinkles, bumps, and ripples, for use in procedural textures and bump mapping
- Image format support for textures and rendered output, including TGA, PNG, JPEG (only input) among others
- Extensive user documentation
One of POV-Ray's main attractions is its large collection of third party support. A large number of tools, textures, models, scenes, and tutorials can be found on the web. It is also a useful reference for those wanting to learn how ray tracing and related geometry and graphics algorithms work.
POV-Ray primitives
POV-Ray, in addition to ordinary shapes like tori, spheres and heightfields, supports mathematically defined primitives such as the isosurface (a finite approximation of an arbitrary function), the polynomial primitive (an infinite object defined by a 15th order or lower polynomial), the julia fractal (a 3-dimensional slice of a 4-dimensional fractal), the superquadratic ellipsoid (a cross between a sphere and a cube), and the parametric primitive (using equations that represent its surface, rather than its interior).
POV-Ray internally represents objects using their mathematical definitions; all POV-Ray primitive objects can be described by mathematical functions. This is different from many other 3D computer modeling packages, which typically use triangle meshes to compose all objects.
This fact provides POV-Ray with several advantages over other rendering / modeling systems. POV-Ray primitives are usually more accurate than their polygonal counterparts. Objects that can be described in terms of spheres, planar surfaces, cylinders, tori and the like are perfectly smooth and mathematically accurate in POV-Ray renderings, whereas polygonal artifacts may be visible in mesh-based modeling software. POV-Ray primitives are also simpler to define than most of their polygonal counterparts. In POV-Ray, a sphere is described simply by its center and radius; in a mesh-based environment, a sphere must be described by a multitude of small polygons.
History
Some time in the 1980s, David Kirk Buck downloaded the source code for a Unix raytracer to his Amiga. Interested, he played with it for a while, but eventually decided to write his own raytracer. He called it DKBTrace, after his initials. He posted it to his Bulletin Board System, thinking others might be interested in it. Around 1987, Aaron Collins saw it and began working on a x86 based port of it. He and David Buck collaborated and eventually added many more features, but the program proved to be more popular than anticipated, and they could not keep up with adding features. About 1989, David turned over the project to a team of programmers. At the same time, he felt that it was inappropriate to use his initials on a program he no longer maintained. The name "STAR" (Software Taskforce on Animation and Rendering) was considered, but eventually the name became the "Persistence of Vision Raytracer," or "POV-Ray" for short.
Current version
The current official version of POV-Ray is 3.6. Some of the main features of this release:
- Extends UV-mapping to more primitives.
- Adds 16 and 32 bit integer data to density file.
- Various bugfixes and speed-ups.
- Improved 64 bit compatibility.
Development and maintenance
Official modifications to the POV-Ray source tree are done and/or approved by the POV-Team. Parties interested in patch submission and/or bug reporting should join the POV-Ray newsgroups on the povray.org news server.
For those impatient for new features, there are unofficial forks and patched versions of POV-Ray available from third parties; however, these are not officially supported by the POV-Team.
Official POV-Ray versions currently do not support shader plug-ins. Some features, like radiosity and splines are still in development and may be subject to syntactical change.
Licensing
POV-Ray is distributed under the POV-Ray License, which permits free distribution of the program source code and binaries, but restricts commercial distribution and the creation of derivative works other than fully functional versions of POV-Ray.
Although the source code is available for modification, due to specific restrictions, it is not open source according to the OSI definition of the term. One of the reasons that POV-Ray is not licensed under the open-source GNU General Public License (GPL), a more popular license for similar projects today, is that POV-Ray was developed before the GPL became popular; the developers wrote their own license for the release of POV-Ray, and contributors to the software have worked under the assumption that their contributions would be licensed under the POV-Ray License. A complete rewrite of POV-Ray is currently under discussion, which would use a more liberal license, though not necessarily the GPL.
External links
- http://www.povray.org/ - POV-Ray homepage
- news://news.povray.org/ - POV-Ray news server
- http://news.povray.org/ - Web access to POV-Ray news server
- comp.graphics.rendering.raytracing - Usenet newsgroup popular with POV-Ray users (or POV-Ray is a frequent topic)
- http://www.irtc.org/ - International Raytracing Competition, where POV-Ray artists have submitted many outstanding images
Unofficial patches
- http://megapov.inetart.net/ - MegaPOV, a collection of unofficial extensions of POV-Ray.
- http://staff.aist.go.jp/r-suzuki/e/povray/iso/df_body.htm - The Density_File Extension patch
- http://jgrimbert.free.fr/pov/patch/tessel/ - Tessellation patch
- http://www.aetec.ee/fv/vkhomep.nsf/pages/POVMan2 - This custom version allows to describe POV-Ray object pigments with procedural code, compatible with RenderMan (R) Shading Language.
Related tools
- http://user.txcyber.com/~sgalls/ - PoseRay, a utility that allows POV-Ray to use 3D models in DXF, OBJ, LWO, 3DS, UDO and RAW formats. It also has surface subdivision and 3D preview of the scene before it is rendered.