POV-Ray

Overview

**Persistence of Vision Raytracer**, or

**POV-Ray**, is a ray tracing program available for a variety of computer platforms. It was originally based on DKBTrace

DKBTrace

DKBTrace was a graphical ray tracing program which was the forerunner of POV-Ray. It had no GUI and ran via the command line. It featured quadric shapes , constructive solid geometry , and procedural textures like wood and marble.It was originally written for the Amiga by David Kirk Buck . Aaron A...

, written by David Kirk Buck and Aaron A. Collins. There are also influences from the earlier Polyray raytracer contributed by its author Alexander Enzmann. POV-Ray is freeware

Freeware

Freeware is computer software that is available for use at no cost or for an optional fee, but usually with one or more restricted usage rights. Freeware is in contrast to commercial software, which is typically sold for profit, but might be distributed for a business or commercial purpose in the...

with the source code available.

Sometime in the 1980s, David Kirk Buck downloaded the source code

Source code

In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

for a Unix

Unix

Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

raytracer to his Amiga

Amiga

The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...

.

Unanswered Questions

Encyclopedia

The

, written by David Kirk Buck and Aaron A. Collins. There are also influences from the earlier Polyray raytracer contributed by its author Alexander Enzmann. POV-Ray is freeware

with the source code available.

for a Unix

raytracer to his Amiga

. He experimented with it for a while, eventually deciding to write his own raytracer, named DKBTrace

after his initials. He posted it to a bulletin board system

, thinking others might be interested in it. In 1987, Aaron A. Collins downloaded DKBTrace and began working on an x86-based port of it. He and David Buck collaborated to add several more features. 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. 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.

POV-Ray was the first ray tracer to render an image in orbit, rendered by Mark Shuttleworth

inside the International Space Station

.

Features of the application and a summary of its history are discussed in an interview with David Kirk Buck and Chris Cason on episode 24 of FLOSS Weekly

.

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.

Beta-testing of version 3.7 is underway as of July 2008. The main improvement over 3.6 will be SMP

support to allow the renderer to take advantage of multiple processors. Additionally, support has been added for HDRI

, including the OpenEXR

and Radiance

file formats, and improved bounding using BSP

trees.

In July 2006, Intel Corporation

started using the beta version to demonstrate their new dual-core Conroe

processor due to the efficiency of the 3.7 beta's SMP implementation.

, sphere

s 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

(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 3D computer modeling packages, which typically use triangle mesh

es to compose all objects.

This fact provides POV-Ray with several advantages and disadvantages over other rendering / 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. 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.

On the other hand, primitive-, script-based modeling is not always a practical method to create objects such as realistic characters or complex man-made artifacts like cars. Those objects have to be created in mesh-based modeling applications such as Wings 3D

or Blender

and then converted to POV-Ray's own mesh format.

**Persistence of Vision Raytracer**, or**POV-Ray**, is a ray tracing program available for a variety of computer platforms. It was originally based on DKBTraceDKBTrace

DKBTrace was a graphical ray tracing program which was the forerunner of POV-Ray. It had no GUI and ran via the command line. It featured quadric shapes , constructive solid geometry , and procedural textures like wood and marble.It was originally written for the Amiga by David Kirk Buck . Aaron A...

, written by David Kirk Buck and Aaron A. Collins. There are also influences from the earlier Polyray raytracer contributed by its author Alexander Enzmann. POV-Ray is freeware

Freeware

Freeware is computer software that is available for use at no cost or for an optional fee, but usually with one or more restricted usage rights. Freeware is in contrast to commercial software, which is typically sold for profit, but might be distributed for a business or commercial purpose in the...

with the source code available.

## History

Sometime in the 1980s, David Kirk Buck downloaded the source codeSource code

In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

for a Unix

Unix

Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

raytracer to his Amiga

Amiga

The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...

. He experimented with it for a while, eventually deciding to write his own raytracer, named DKBTrace

DKBTrace

DKBTrace was a graphical ray tracing program which was the forerunner of POV-Ray. It had no GUI and ran via the command line. It featured quadric shapes , constructive solid geometry , and procedural textures like wood and marble.It was originally written for the Amiga by David Kirk Buck . Aaron A...

after his initials. He posted it to a bulletin board system

Bulletin board system

A Bulletin Board System, or BBS, is a computer system running software that allows users to connect and log in to the system using a terminal program. Once logged in, a user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging...

, thinking others might be interested in it. In 1987, Aaron A. Collins downloaded DKBTrace and began working on an x86-based port of it. He and David Buck collaborated to add several more features. 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. 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.

POV-Ray was the first ray tracer to render an image in orbit, rendered by Mark Shuttleworth

Mark Shuttleworth

Mark Richard Shuttleworth is a South African entrepreneur who was the second self-funded space tourist. Shuttleworth founded Canonical Ltd. and as of 2010, provides leadership for the Ubuntu operating system...

inside the International Space Station

International Space Station

The International Space Station is a habitable, artificial satellite in low Earth orbit. The ISS follows the Salyut, Almaz, Cosmos, Skylab, and Mir space stations, as the 11th space station launched, not including the Genesis I and II prototypes...

.

Features of the application and a summary of its history are discussed in an interview with David Kirk Buck and Chris Cason on episode 24 of FLOSS Weekly

FLOSS Weekly

FLOSS Weekly is a free software / open source themed podcast from the TWiT Network. The show premiered on April 7, 2006, and features prominent guests from the free software/open source community. It was originally hosted by Leo Laporte; his cohost for the first seventeen episodes was Chris DiBona...

.

## Features

POV-Ray has matured substantially since it was created. Recent versions of the software include the following features:- A Turing-complete scene description language (SDL) that supports macros and loops.
- Library of ready-made scenes, textures, and objects
- Support for a number of geometric primitiveGeometric primitiveThe term geometric primitive in computer graphics and CAD systems is used in various senses, with the common meaning of the simplest geometric objects that the system can handle . Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well...

s and constructive solid geometryConstructive solid geometryConstructive solid geometry is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine objects... - Several kinds of light sources
- Atmospheric effects such as fogFogFog is a collection of water droplets or ice crystals suspended in the air at or near the Earth's surface. While fog is a type of stratus cloud, the term "fog" is typically distinguished from the more generic term "cloud" in that fog is low-lying, and the moisture in the fog is often generated...

and media (smokeSmokeSmoke is a collection of airborne solid and liquid 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 unwanted by-product of fires , but may also be used for pest...

, clouds) - ReflectionReflection (physics)Reflection is the change in direction of a wavefront at an interface between two differentmedia so that the wavefront returns into the medium from which it originated. Common examples include the reflection of light, sound and water waves...

s, refractionRefractionRefraction is the change in direction of a wave due to a change in its speed. It is essentially a surface phenomenon . The phenomenon is mainly in governance to the law of conservation of energy. The proper explanation would be that due to change of medium, the phase velocity of the wave is changed...

s, and light causticsCaustic (optics)In optics, a caustic or caustic network is the envelope of light rays reflected or refracted by a curved surface or object, or the projection of that envelope of rays on another surface. The caustic is a curve or surface to which each of the light rays is tangent, defining a boundary of an...

using photon mappingPhoton mappingIn computer graphics, photon mapping is a two-pass global illumination algorithm developed by Henrik Wann Jensen that solves the rendering equation. Rays from the light source and rays from the camera are traced independently until some termination criterion is met, then they are connected in a... - Surface patterns such as wrinkleWrinkleA wrinkle is a fold, ridge or crease in the skin. Skin wrinkles typically appear as a result of aging processes such as glycation or, temporarily, as the result of prolonged immersion in water. Wrinkling in the skin is caused by habitual facial expressions, aging, sun damage, smoking, poor...

s, bumps, and rippleRippleRipple is the more common name for a capillary wave in fluid dynamics.Ripple can also refer to:* Ripple , a non-profit click-to-donate internet site and search engine* Ripple effect, the socio-educational phenomenon...

s, for use in procedural texturesProcedural textureA procedural texture is a computer generated image created using an algorithm intended to create a realistic representation of natural elements such as wood, marble, granite, metal, stone, and others....

and bump mappingBump mappingBump mapping is a technique in computer graphics for simulating bumps and wrinkles on the surface of an object. This is achieved by perturbing the surface normals of the object and using the perturbed normal during lighting calculations. The result is an apparently bumpy surface rather than a... - Radiosity
- Image format support for texturesTexture (visual arts)In the visual arts, texture is the perceived surface quality of a work of art. It is an element of two-dimensional and three-dimensional design and is distinguished by its perceived visual and physical properties...

and rendered output, including TGA, PNG, JPEGJPEGIn computing, JPEG . The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality. JPEG typically achieves 10:1 compression with little perceptible loss in image quality....

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

### Current version

The current official version of POV-Ray is 3.6. Some of the main features of this release:- Extends UV mappingUV mappingUV mapping is the 3D modeling process of making a 2D image representation of a 3D model.-UV mapping:This process projects a texture map onto a 3D object...

to more primitives. - Adds 16 and 32 bit integer data to density file.
- Various bugfixes and speed-ups.
- Improved 64-bit compatibilityComputer compatibilityA family of computer models is said to be compatible if certain software that runs on one of the models can also be run on all other models of the family. The computer models may differ in performance, reliability or some other characteristic...

.

Beta-testing of version 3.7 is underway as of July 2008. The main improvement over 3.6 will be SMP

Symmetric multiprocessing

In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...

support to allow the renderer to take advantage of multiple processors. Additionally, support has been added for HDRI

High dynamic range imaging

In image processing, computer graphics, and photography, high dynamic range imaging is a set of techniques that allows a greater dynamic range between the lightest and darkest areas of an image than current standard digital imaging techniques or photographic methods...

, including the OpenEXR

OpenEXR

OpenEXR is a high dynamic range imaging image file format, released as an open standard along with a set of software tools created by Industrial Light and Magic , released under a free software license similar to the BSD license....

and Radiance

Radiance (software)

Radiance is a suite of tools for performing lighting simulation originally written by Greg Ward. It includes a renderer as well as many other tools for measuring the simulated light levels. It uses ray tracing to perform all lighting calculations, accelerated by the use of an octree data structure...

file formats, and improved bounding using BSP

Binary space partitioning

In computer science, binary space partitioning is a method for recursively subdividing a space into convex sets by hyperplanes. This subdivision gives rise to a representation of the scene by means of a tree data structure known as a BSP tree.Originally, this approach was proposed in 3D computer...

trees.

In July 2006, Intel Corporation

Intel Corporation

Intel Corporation is an American multinational semiconductor chip maker corporation headquartered in Santa Clara, California, United States and the world's largest semiconductor chip maker, based on revenue. It is the inventor of the x86 series of microprocessors, the processors found in most...

started using the beta version to demonstrate their new dual-core Conroe

Conroe (microprocessor)

Conroe is the code name for many Intel processors sold as Core 2 Duo, Xeon, Pentium Dual-Core and Celeron. It was the first desktop processor to be based on the Core microarchitecture, replacing the NetBurst microarchitecture based Cedar Mill processor. It has product code 80557, which is shared...

processor due to the efficiency of the 3.7 beta's SMP implementation.

### Primitives

POV-Ray, in addition to standard geometric shapes like toriTorus

In geometry, a torus is a surface of revolution generated by revolving a circle in three dimensional space about an axis coplanar with the circle...

, sphere

Sphere

A sphere is a perfectly round geometrical object in three-dimensional space, such as the shape of a round ball. Like a circle in two dimensions, a perfect sphere is completely symmetrical around its center, with all points on the surface lying the same distance r from the center point...

s and heightfields, supports mathematically defined primitives such as the isosurface

Isosurface

An isosurface is a three-dimensional analog of an isoline. It is a surface that represents points of a constant value within a volume of space; in other words, it is a level set of a continuous function whose domain is 3D-space.Isosurfaces are normally displayed using computer graphics, and are...

(a finite approximation of an arbitrary function), the polynomial

Polynomial

In mathematics, a polynomial is an expression of finite length constructed from variables and constants, using only the operations of addition, subtraction, multiplication, and non-negative integer exponents...

primitive (an infinite object defined by a 15th order or lower polynomial), the julia fractal

Julia set

In the context of complex dynamics, a topic of mathematics, the Julia set and the Fatou set are two complementary sets defined from a function...

(a 3-dimensional slice of a 4-dimensional fractal), the superquadratic ellipsoid

Superellipse

A superellipse is a geometric figure defined in the Cartesian coordinate system as the set of all points withwhere n, a and b are positive numbers....

(intermediate between a sphere and a cube), and the parametric

Parametric

Parametric may refer to:*Parametric equation*Parametric statistics*Parametric derivative*Parametric plot*Parametric model*Parametric oscillator *Parametric contract*Parametric insurance*Parametric feature based modeler...

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 3D computer modeling packages, which typically use triangle mesh

Polygon mesh

A polygon mesh or unstructured grid is a collection of vertices, edges and faces that defines the shape of a polyhedral object in 3D computer graphics and solid modeling...

es to compose all objects.

This fact provides POV-Ray with several advantages and disadvantages over other rendering / 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. 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.

On the other hand, primitive-, script-based modeling is not always a practical method to create objects such as realistic characters or complex man-made artifacts like cars. Those objects have to be created in mesh-based modeling applications such as Wings 3D

Wings 3D

Wings 3D is a free, open source, subdivision modeler inspired by Nendo and Mirai from Izware. Wings 3D is named after the winged-edge data structure it uses internally to store coordinate and adjacency data, and is commonly referred to by its users simply as Wings.Wings 3D is available for most...

or Blender

Blender (software)

Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...

and then converted to POV-Ray's own mesh format.