The 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.... , 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. Freeware is different from shareware; the latter obliges the user to pay .... with the source code available. time in the 1980s, David Kirk Buck downloaded the source code
Source code
In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language.... for a Unix
Unix
Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna.... raytracer to his Amiga
Amiga
The Amiga is a family of personal computers originally developed by Amiga Corporation. Development on the Amiga began in 1982 with Jay Miner as the principal hardware designer.... .
The 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.... , 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. Freeware is different from shareware; the latter obliges the user to pay .... with the source code available.
History
Some time in the 1980s, David Kirk Buck downloaded the source code
Source code
In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language.... for a Unix
Unix
Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna.... raytracer to his Amiga
Amiga
The Amiga is a family of personal computers originally developed by Amiga Corporation. Development on the Amiga began in 1982 with Jay Miner as the principal hardware designer.... . 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.... after his initials. He posted it to his bulletin board system
Bulletin board system
File:Monochrome-bbs.pngA Bulletin Board System, or BBS, is a computer system running list of BBS software that allows User to Telecommunication circuit and Logging to the system using a terminal program.... , 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 2009, provides leadership for the Ubuntu operating system.... inside the International Space Station
International Space Station
The International Space Station is a research facility Assembly of the International Space Station in outer space. On-orbit construction of the station began in 1998, and is scheduled to be complete by 2011, with operations continuing until around 2015.... .
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.tv . The show premiered on April 7, 2006, and features prominent guests from the free software/open source community.... .
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
The term geometric primitive in computer graphics and CAD systems is used in various senses, with common meaning of atomic geometric objects the system can handle .... s and constructive solid geometry
Constructive solid geometry
Constructive solid geometry is a technique used in solid modeling. CSG is often, but not always, a procedural modeling technique used in 3D computer graphics and CAD....
Fog is a cloud bank that is in contact with the ground. A cloud may be considered partly fog; for example, the part of a cloud that is suspended in the air above the ground is not considered fog, whereas the part of the cloud that comes in contact with higher ground is considered fog.... and media (smoke
Smoke
File:Bling-Bling Skywriting David Shankbone.jpgSmoke is the 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 entrainment or otherwise mixed into the mass.... , clouds)
Reflection is the change in direction of a wavefront at an wiktionary:interface between two differentmedium so that the wavefront returns into the medium from which it originated.... s, refraction
Refraction
Refraction is the change in direction of a wave due to a change in its speed. This is most commonly observed when a wave passes from one optical medium to another.... s, and light caustics
Caustic (optics)
In optics, a caustic is the envelope of light rays Reflection or refraction by a curved surface or object, or the Projection of that envelope of rays on another surface.... using photon mapping
Photon mapping
In computer graphics, photon mapping is a two-pass global illumination algorithm developed by Henrik Wann Jensen that solves the rendering equation....
File:Old Bangladeshi drinking tea cropped.jpgA 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.... s, bumps, and ripple
Ripple
Ripple can refer to:* Ripple * Ripple effect, the socio-educational phenomenon* Ripple , residual unwanted variations following ac to dc conversion... s, for use in procedural textures and bump mapping
Bump mapping
Bump mapping is a computer graphics technique where at each pixel, a perturbation to the surface normal of the object being rendering is looked up in a heightmap and applied before the illumination calculation is done ....
Radiosity is a global illumination algorithm used in 3D computer graphics rendering . Radiosity is an application of the finite element method to solving the rendering equation for scenes with purely diffuse surfaces....
Texture refers to the properties held and sensations caused by the external surface of objects received through the sense of somatosensory system.... s and rendered output, including TGA, PNG, JPEG
JPEG
In computing, JPEG is a commonly used method of for photographic images. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and 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
Ray tracing
In computer graphics, ray tracing is a technique for generating an digital image by tracing the path of light through pixel in an . The technique is capable of producing a very high degree of photorealism; usually higher than that of typical scanline rendering methods, but at a greater computation time.... 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:
The term compatibility may refer to:* In biology:** Blood type compatibility* In computing:** Pin-compatibility** Computer compatibility*** Backward compatibility... .
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 or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory.... support to allow the renderer to take advantage of multiple processors. Additionally, support has been added for HDRI
High dynamic range imaging
In , computer graphics, and photography, high dynamic range imaging is a set of techniques that allows a greater dynamic range#Photography of luminances between light and dark areas of a scene than normal digital imaging techniques.... , including the OpenEXR
OpenEXR
OpenEXR is a high dynamic range imaging , 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 rendering as well as many other tools for measuring the simulated light levels.... file formats, and improved bounding using BSP
Binary space partitioning
Binary space partitioning is a method for recursively subdividing a Euclidean space into convex sets by hyperplanes. This subdivision gives rise to a representation of the scene by means of a Tree known as a BSP tree.... trees.
In July 2006, Intel corporation started using the beta version to demonstrate their new dual-core Conroe
Intel Core 2
The Core 2 brand refers to a range of Intel's consumer 64-bit single- and dual-core and 2x2 Multi-Chip Module quad-core CPUs with the x86-64 instruction set, based on the Intel Core microarchitecture, derived from the 32-bit dual-core Intel Core laptop processor.... processor due to the efficiency of the 3.7 beta's SMP implementation.
Primitives
POV-Ray, in addition to standard geometric shapes like tori
Torus
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, which does not touch the circle.... , sphere
Sphere
A sphere is a symmetrical geometrical object. In non-mathematical usage, the term is used to refer either to a round ball or to its two-dimensional surface.... s and heightfields, supports mathematically defined primitives such as the isosurface
Isosurface
An isosurface is a dimension analog of an isocontour. 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.... (a finite approximation of an arbitrary function), the polynomial
Polynomial
In mathematics, a polynomial is an expression constructed from variables and constants, using the operations of addition, subtraction, multiplication, and constant non-negative whole number exponents.... primitive (an infinite object defined by a 15th order or lower polynomial), the julia fractal
Julia set
In complex dynamics, the Julia set of a holomorphic function informally consists of those points whose long-time behavior under iterated function of can change drastically under arbitrarily small perturbations .... (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 resonance... 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
File:Dolphin triangle mesh.pngA polygon mesh or unstructured grid is a collection of vertices, edges and faces that defines the shape of a polyhedron 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 software and open source polygon mesh Subdivision surface inspired by Nendo and Mirai from Izware, all using the winged edge data structure.... or Blender
Blender (software)
Blender is a free software 3D computer graphics graphics application. It can be used for 3D modeling, UV mapping unwrapping, texturing, skeletal animation, water simulations, skeletal animation, computer animation, rendering , particle system and other computer simulation, non-linear editing, compositing, and creating interactive 3D applicati... and then 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;
#include "colors.inc" //Includes a separate file defining a number of common colours
global_settings
background //Sets a background colour for the image (dark grey)
camera//Tells the camera where to look
light_source //Moves the light source to a desired location
light_source //Moves the light source to a desired location
box //Rotates the box
The following script fragment shows the use of variable declaration, assignment, comparison and the while loop construct:
The POV-ray program itself does not include a modeling
3D modeling
In 3D computer graphics, 3D modeling is the process of developing a Mathematics, wire frame model representation of any Three-dimensional space object via 3d computer graphics software.... 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.
A number of POV-Ray compatible modelers are linked from .
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 povray.org news server. 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
Shader
A shader in the field of computer graphics is a set of software instructions, which is used primarily to calculate Rendering effects on graphics hardware with a high degree of flexibility.... plug-ins. Some features, like radiosity
Radiosity
Radiosity is a global illumination algorithm used in 3D computer graphics rendering . Radiosity is an application of the finite element method to solving the rendering equation for scenes with purely diffuse surfaces.... and spline
Spline (mathematics)
In mathematics, a spline is a special Function defined piecewise by polynomials.In interpolation problems, spline interpolation is often preferred to polynomial interpolation because it yields similar results, even when using low degree polynomials, while avoiding Runge's phenomenon for higher degrees.... s are still in development and may be subject to syntactical change.
Platform Support
POV-Ray is distributed in compiled format for Macintosh
Macintosh
File:Imac alu.pngMacintosh, commonly shortened to Mac, is a brand name which covers several lines of personal computers designed, developed, and marketed by Apple Inc.... , Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces .... and Linux
Linux
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license... .
Support for Intel Macs is not available in the Macintosh
Macintosh
File:Imac alu.pngMacintosh, commonly shortened to Mac, is a brand name which covers several lines of personal computers designed, developed, and marketed by Apple Inc.... version, but since Mac OS X
Mac OS X
Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems.... is a version of Unix
Unix
Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna.... the Linux version can be compiled on it. POV-Ray also could be ported to any platform which has compatible C++
C++
C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features.... compiler.
People with Intel Macs can use MegaPOV though, as that is compiled as Universal Binary
Universal binary
A universal binary is, in Apple Inc. parlance, an executable file or Application software Bundle that runs natively on either PowerPC or X86 architecture -based Apple Macintosh computers; it is an implementation of the concept more generally known as a "fat binary".... .
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.
In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language.... is available for modification, due to specific restrictions, it is not open source
Open source
Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations.... according to the OSI
Open Source Initiative
The Open Source Initiative is an organization dedicated to promoting open-source software.The organization was founded in February 1998, by Bruce Perens and Eric S.... definition of the term. One of the reasons that POV-Ray is not licensed under the free software GNU General Public License
GNU General Public License
The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft.... (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 have worked under the assumption that their contributions would be licensed under the POV-Ray License.
The whereabouts of some of the contributors to the source code
Source code
In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language.... are unknown, and therefore the license cannot be changed, since the permission of all contributors would be required.
A complete rewrite of POV-Ray ("POV-Ray 4.0") is currently under discussion, which would use a more liberal license, most likely GPL v3.
YafRay is a free software, open source ray tracing program that uses an XML scene description language. It has been integrated into the 3D modelling software Blender , and so can now be used to render scenes made within it directly, without the need for an exporter.... (Yet Another Free Raytracer)
Kerkythea is a freeware rendering system that supports Ray tracing . Currently, it can be integrated with 3ds Max, Blender , SketchUp, Silo and Wings3D .... Free ray tracing program with enhanced Sketchup
SketchUp
SketchUp is a 3D modeling computer program designed for architects, civil engineers, filmmakers, game developers, and related professions. It also includes features to facilitate the placement of models in Google Earth.... compatibility
Sunflow is an open source global illumination rendering system written in Java .External links... an open source rendering system for photo-realistic image synthesis written in Java
Blender is a free software 3D computer graphics graphics application. It can be used for 3D modeling, UV mapping unwrapping, texturing, skeletal animation, water simulations, skeletal animation, computer animation, rendering , particle system and other computer simulation, non-linear editing, compositing, and creating interactive 3D applicati... a free and open-source software program for 3D modeling, animation, and rendering