POV-Ray

This is an old revision of this page, as edited by 62.249.191.189 (talk) at 00:20, 2 October 2004 (Related tools). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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.

The Utah Teapot, rendered in POV-ray. Shadows, specular-highlighting, colored lighting, and bump mapping are demonstrated.

Features

POV-Ray has matured substantially since it was created. Recent versions of the software include some of the following features:

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

 
Some dice rendered in POV-Ray. Superquadratic ellipsoids, refraction and focal blur are demonstrated.

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.

Unofficial patches

  • 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.