POV-Ray
Overview
 
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.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...

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

. 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 primitive
    Geometric primitive
    The 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 geometry
    Constructive solid geometry
    Constructive 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 fog
    Fog
    Fog 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 (smoke
    Smoke
    Smoke 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)
  • Reflection
    Reflection (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, refraction
    Refraction
    Refraction 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 caustics
    Caustic (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 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. 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 wrinkle
    Wrinkle
    A 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 ripple
    Ripple
    Ripple 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 textures
    Procedural texture
    A 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 mapping
    Bump mapping
    Bump 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 textures
    Texture (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, JPEG
    JPEG
    In 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 mapping
    UV mapping
    UV 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 compatibility
    Computer compatibility
    A 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 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...

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

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 { assumed_gamma 1.0 }

//Sets a background colour for the image (dark grey)
background { color rgb <0.25, 0.25, 0.25> }

//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 { location <0.0, 0.5, -4.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0> }

//Places a light source
//color : Sets the color of the light source (white)
//translate : Moves the light source to a desired location
light_source { <0, 0, 0>
color rgb <1, 1, 1>
translate <-5, 5, -5> }
//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 { <0, 0, 0>
color rgb <0.25, 0.25, 0.25>
translate <6, -6, -6> }

//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 { <-0.5, -0.5, -0.5>,
<0.5, 0.5, 0.5>
texture { pigment { color Red }
finish { specular 0.6 }
normal { agate 0.25 scale 1/2 }
}
rotate <45,46,47> }


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 { <-0.5, -0.5, -0.5>
<0.5, 0.5, 0.5>
texture { pigment { color Red }
finish { specular 0.6 }
normal { agate 0.25 scale 1/2 } }
rotate the_angle }
#declare the_angle = the_angle + 45;
#end

Modeling

The POV-Ray program itself does not include a modeling
3D modeling
In 3D computer graphics, 3D modeling is the process of developing a mathematical representation of any three-dimensional surface of object via specialized software. The product is called a 3D model...

 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 Povray.org: Modelling Programs.

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 [nntp://news.povray.org/ news.povray.org] news
Usenet
Usenet is a worldwide distributed Internet discussion system. It developed from the general purpose UUCP architecture of the same name.Duke University graduate students Tom Truscott and Jim Ellis conceived the idea in 1979 and it was established in 1980...

 server (with a Web interface 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
Shader
In the field of computer graphics, a shader is a computer program that 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 sufficiently smooth piecewise-polynomial function. In interpolating 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...

s are still in development and may be subject to syntactical change.

Platform support

POV-Ray is distributed in compiled format for Macintosh
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

, Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

.
Support for Intel Macs is not available in the Macintosh
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

 version, but since Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 is a version of 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...

 the Linux version can be compiled on it. POV-Ray also could be ported to any platform which has a compatible C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 compiler.

People with Intel Macs can use the fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...

 MegaPOV though, as that is compiled as universal binary
Universal binary
A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...

.

The beta 3.7 versions with SMP support, however, are still available only for Windows and Linux.

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

 is available for modification, due to specific restrictions, it is not open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 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. Raymond, prompted by Netscape Communications Corporation publishing the source code for its flagship Netscape Communicator product...

 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 the most widely used free software license, originally written by Richard Stallman for the GNU Project....

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

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.

See also

  • YafaRay A popular free open-source raytracing engine
  • Kerkythea
    Kerkythea
    Kerkythea is a standalone rendering system that supports raytracing and Metropolis light transport, uses physically accurate materials and lighting — and is distributed as freeware...

     Free ray tracing program with enhanced Sketchup
    SketchUp
    SketchUp is a 3D modeling program marketed by Google and designed for architectural, civil, and mechanical engineers as well as filmmakers, game developers,...

     compatibility
  • Sunflow
    Sunflow
    Sunflow is an open source global illumination rendering system written in Java.The current status of the project is unknown, but the last announcement on the program's official page was made in 2007.-External links:***...

     an open source rendering system for photo-realistic image synthesis written in Java
  • 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...

     a free and open-source software program for 3D modeling, animation, and rendering
  • Internet Ray Tracing Competition
    Internet Ray Tracing Competition
    The Internet Ray Tracing Competition is one of the Internet's largest and most well-known digital 3D art competitions, running recurring competition rounds of image submissions from users, with an emphasis on artwork producing using raytracing....

    has a large number of submissions from POV-Ray users

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK