The Persistence of Vision Ray Tracer, most commonly acronymed as POV-Ray, is a
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
ray-tracing program that generates images from a text-based scene description. It was originally based on DKBTrace, written by David Kirk Buck and Aaron A. Collins for
Amiga
Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
computers. There are also influences from the earlier Polyray raytracer because of contributions from its author, Alexander Enzmann. POV-Ray is
free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
, with the
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
available under the
AGPL-3.0-or-later license.
History
Sometime in the 1980s, David Kirk Buck downloaded the
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
for a
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
ray tracer to his
Amiga
Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
. He experimented with it for a while and eventually decided to write his own ray tracer named DKBTrace after his initials. He posted it to the "You Can Call Me Ray"
bulletin board system
A bulletin board system (BBS), also called a computer bulletin board service (CBBS), is a computer server running list of BBS software, software that allows users to connect to the system using a terminal program. Once logged in, the user perfor ...
(BBS) in Chicago, thinking others might be interested in it. In 1987, Aaron A. Collins downloaded DKBTrace and began working on an
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
port of it. He and David Buck collaborated to add several more features. POV also had/has similarities with (and borrows from) Rayshade, another BBS era raytracer, including the short but good
Rayshade book.
When the program proved to be more popular than anticipated, they could not keep up with demand for more features. Thus, in July 1991, David turned over the project to a team of programmers working in the "GraphDev"
forum on
CompuServe
CompuServe, Inc. (CompuServe Information Service, Inc., also known by its initialism CIS or later CSi) was an American Internet company that provided the first major commercial online service provider, online service. It opened in 1969 as a times ...
. At the same time, David felt that it was inappropriate to use his initials on a program he no longer maintained. The name "STAR-Light" (Software Taskforce on Animation and Rendering) was initially used, but eventually the name became "PV-Ray", and then ultimately "POV-Ray" (Persistence of Vision Ray Tracer),
a name inspired by
Dalí's painting, ''
The Persistence of Memory''.
Features of the application, and a summary of its history, are discussed in a February 2008 interview with David Kirk Buck and Chris Cason on episode 24 of
FLOSS Weekly.
Features
POV-Ray has matured substantially since it was created. Recent versions of the software include the following features:
* a
Turing-complete
In computability theory, a system of data-manipulation rules (such as a model of computation, a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be ...
scene description language (SDL) that supports macros and loops
* a library of ready-made scenes, textures, and objects
* support for a number of
geometric primitive
In vector computer graphics, CAD systems, and geographic information systems, a geometric primitive (or prim) is the simplest (i.e. 'atomic' or irreducible) geometric shape that the system can handle (draw, store). Sometimes the subroutines ...
s and
constructive solid geometry
* several kinds of
light source
Light, visible light, or visible radiation is electromagnetic radiation that can be visual perception, perceived by the human eye. Visible light spans the visible spectrum and is usually defined as having wavelengths in the range of 400– ...
s
* atmospheric effects such as
fog and ''media'' (
smoke
Smoke is an aerosol (a suspension of airborne particulates and gases) emitted when a material undergoes combustion or pyrolysis, together with the quantity of air that is entrained or otherwise mixed into the mass. It is commonly an unwante ...
,
clouds)
*
reflections,
refraction
In physics, refraction is the redirection of a wave as it passes from one transmission medium, medium to another. The redirection can be caused by the wave's change in speed or by a change in the medium. Refraction of light is the most commo ...
s, and light
caustics using
photon mapping
* surface patterns such as
wrinkle
A wrinkle, also known as a rhytid, is a fold, ridge or crease in an otherwise smooth surface, such as on skin or fabric. Skin wrinkles typically appear as a result of ageing processes such as glycation, habitual sleeping positions, loss of b ...
s, bumps, and
ripples, for use in
procedural textures and
bump mapping
*
radiosity
* support for
textures and rendered output in many image formats, including
TGA,
PNG, and
JPEG
JPEG ( , short for Joint Photographic Experts Group and sometimes retroactively referred to as JPEG 1) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degr ...
, among others
* extensive
user documentation
* support for custom output resolutions (This includes extreme resolutions such as
16K)
* two types of
SSAA Type 1 is an adaptive, non-recursive, super-sampling method. It is ''adaptive'' because not every pixel is super-sampled. Type 2 is an adaptive and recursive super-sampling method. It is ''recursive'' because the pixel is sub-divided and sub-sub-divided recursively. The ''adaptive'' nature of type 2 is the variable depth of recursion.
One of POV-Ray's main attractions is its large collection of third-party-made assets and tools. 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 3D geometry and computer graphics algorithms work.
Current version
The current official version of POV-Ray is 3.7. This version introduces:
* support for
symmetric multiprocessing (SMP), to allow the renderer to take advantage of
multiple processors
* support for
high-dynamic-range imaging (HDRI), including the
OpenEXR and
radiance
In radiometry, radiance is the radiant flux emitted, reflected, transmitted or received by a given surface, per unit solid angle per unit projected area. Radiance is used to characterize diffuse emission and reflection of electromagnetic radiati ...
file formats
* improved
bounding using
BSP trees
Some of the main introduced features of the previous release (3.6) are:
* extending
UV mapping to more primitives
* adding 16- and 32-bit integer data to a density file
* improving
64-bit compatibility
In July 2006,
Intel Corporation
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Intel designs, manufactures, and sells computer components such as central processing ...
started using the
beta version
The software release life cycle is the process of developing, testing, and distributing a software product (e.g., an operating system). It typically consists of several stages, such as pre-alpha, alpha, beta, and release candidate, before the fi ...
of 3.7 to demonstrate their new
dual-core
A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
Conroe processor due to the efficiency of the SMP (symmetric multiprocessing) implementation.
Primitives

POV-Ray, in addition to standard
3D geometric shapes like
tori,
sphere
A sphere (from Ancient Greek, Greek , ) is a surface (mathematics), surface analogous to the circle, a curve. In solid geometry, a sphere is the Locus (mathematics), set of points that are all at the same distance from a given point in three ...
s, and
heightfields, supports mathematically defined ''
primitives'' such as the
isosurface (a finite approximation of an arbitrary function), the
polynomial
In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
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 (an intermediate 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 computer programs that include 3D models, which typically use
triangle
A triangle is a polygon with three corners and three sides, one of the basic shapes in geometry. The corners, also called ''vertices'', are zero-dimensional points while the sides connecting them, also called ''edges'', are one-dimension ...
meshes to compose all the objects in a scene.
This fact provides POV-Ray with several advantages and disadvantages over other rendering and modeling systems; POV-Ray primitives are 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, e.g., in POV-Ray, a
sphere
A sphere (from Ancient Greek, Greek , ) is a surface (mathematics), surface analogous to the circle, a curve. In solid geometry, a sphere is the Locus (mathematics), set of points that are all at the same distance from a given point in three ...
is described simply by its center and radius; in a mesh-based environment, a sphere must be described by a multitude of small connected polygons (usually
quads or
triangles).
On the other hand, script-based primitive modeling is not always a practical method to create certain objects, such as realistic characters or complex man-made artifacts like cars. Those objects can be created first in mesh-based modeling applications such as
Wings 3D and
Blender, and then they can be converted to POV-Ray's own mesh format.
Examples of the scene description language
The following is an example of the scene description language used by POV-Ray to describe a scene to render. It demonstrates the use of a background colour, camera, lights, a simple box shape having a surface normal and finish, and the transforming effects of rotation.
#version 3.6;
// Includes a separate file defining a number of common colours
#include "colors.inc"
global_settings
// Sets a background colour for the image (dark grey)
background
// Places a camera
// direction: Sets, among other things, the field of view of the camera
// right: Sets the aspect ratio of the image
// look_at: Tells the camera where to look
camera
// Places a light source
// color: Sets the color of the light source (white)
// translate: Moves the light source to a desired location
light_source
// Places another light source
// color: Sets the color of the light source (dark grey)
// translate: Moves the light source to a desired location
light_source
// Sets a box
// pigment: Sets a color for the box ("Red" as defined in "colors.inc")
// finish: Sets how the surface of the box reflects light
// normal: Sets a bumpiness for the box using the "agate" in-built model
// rotate: Rotates the box
box
The following script fragment shows the use of variable declaration, assignment, comparison and the while loop construct:
#declare the_angle = 0;
#while (the_angle < 360)
box
#declare the_angle = the_angle + 45;
#end
Modeling
The POV-Ray program itself does not include a
modeling feature; it is essentially a pure renderer with a sophisticated model description language. To accompany this feature set, third parties have developed a large variety of modeling software, some specialized for POV-Ray, others supporting import and export of its data structures, including the free and open-source 3D creation suite
Blender.
A number of additional POV-Ray compatible modelers are linked fro
Povray.org: Modelling Programs
In 2007, POV-Ray acquired the rights t
, an interactive 3-D modeling program long used with POV-Ray. However, as of December 2016, Moray development is stalled.
Software
Development and maintenance
Official modifications to the POV-Ray source tree are done and/or approved by the POV-Team. Most patch submission and/or bug reporting is done in the POV-Ray newsgroups on the
ntp://news.povray.org/ news.povray.orgnews
News is information about current events. This may be provided through many different Media (communication), media: word of mouth, printing, Mail, postal systems, broadcasting, Telecommunications, electronic communication, or through the te ...
server (with a
Web interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
br>
also available. Since POV-Ray's source is available 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
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as '' shading''. Shaders have evolved to perform a variety of s ...
plug-ins. Some features, like
radiosity and
splines are still in development and may be subject to syntactical change.
Platform support
POV-Ray 3.6 is distributed in compiled format for
Mac,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
.
Support for
Intel Macs is not available in the
Mac version, but since
Mac OS X
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
is a version of
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
the Linux version can be
compiled on it.
The 3.7 versions with
SMP support are officially supported for Windows and Linux. Unofficial
Mac versions for v3.7 can be found.
POV-Ray can be
ported to any platform which has a compatible
C++ compiler.
Licensing
Originally, POV-Ray was distributed under its own ''POV-Ray License''; namely, the POV-Ray 3.6 Distribution License and the POV-Ray 3.6 Source License, which permitted free distribution of the program source code and binaries, while restricting commercial distribution and the creation of derivative works other than fully functional versions of POV-Ray.
Although the
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
of older versions is available for modification, due to the above 3.6 and prior license restrictions, it was not
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
or
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
according to the
OSI or the
FSF definition of the term. This was a problem as
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
exchange with the greater
FOSS ecosystem was impossible due to
license incompatibility with
copyleft licenses.
One of the reasons that POV-Ray was not originally licensed under the free software
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL), or other open source licenses, is that POV-Ray was developed before the GPL-style licenses became widely used; the developers wrote their own license for the release of POV-Ray, and contributors to the software worked under the assumption their contributions would be licensed under the POV-Ray 3.6 Licenses.
In 2013, with version 3.7, POV-Ray was relicensed under the
GNU Affero General Public License
The GNU Affero General Public License (GNU AGPL) is a free, copyleft license published by the Free Software Foundation in November 2007, and based on the GNU GPL version 3 and the ''Affero General Public License'' (non-GNU).
It is intended fo ...
version 3 (or later).
Thus POV-Ray is since then
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
according to the
FSF definition and also
open source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
according to the
Open Source Definition.
See also
*
Blender – a free and open-source software program for 3D modeling, animation, and rendering
*
Kerkythea – a freeware ray-tracing program with enhanced
Sketchup compatibility
*
Sunflow – an open-source rendering system for photo-realistic image synthesis, written in Java
References
External links
*
{{DEFAULTSORT:Pov-Ray
3D graphics software
Amiga raytracers
Articles with example code
Cross-platform software
Domain-specific programming languages
Free 3D graphics software
Free graphics software
Free software programmed in C++
Global illumination software
Rendering systems
Software using the GNU Affero General Public License