HOME

TheInfoList



OR:

The Persistence of Vision Ray Tracer, most commonly acronymed as POV-Ray, is a
cross-platform In 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 platforms. Some cross-platform software ...
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 introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
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 a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
, with the
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
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, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
for a
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser 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, ...
ray tracer to his
Amiga Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
. 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 computer bulletin board service (CBBS), is a computer server running software that allows users to connect to the system using a terminal program. Once logged in, the user can perform functions such ...
(BBS) in Chicago, thinking others might be interested in it. In 1987, Aaron A. Collins downloaded DKBTrace and began working on an x86 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 working in the "GraphDev" forum on
CompuServe CompuServe (CompuServe Information Service, also known by its initialism CIS) was an American online service provider, the first major commercial one in the world – described in 1994 as "the oldest of the Big Three information services (the oth ...
. 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 computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be used to simulate any ...
scene description language (SDL) that supports macros and loops * a library of ready-made scenes, textures, and objects * support for a number of geometric primitives and
constructive solid geometry Constructive solid geometry (CSG; formerly called computational binary 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 comb ...
* several kinds of light sources * atmospheric effects such as
fog Fog is a visible aerosol consisting of tiny water droplets or ice crystals suspended in the air at or near the Earth's surface. Reprint from Fog can be considered a type of low-lying cloud usually resembling stratus, and is heavily influ ...
and ''media'' ( smoke,
clouds In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid drop (liquid), droplets, ice crystals, frozen crystals, or other particulates, particles suspended in the atmosphere of a planetary body or similar space. ...
) * reflections,
refraction In physics, refraction is the redirection of a wave as it passes from one 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 commonly observed phenomen ...
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 ...
s, bumps, and ripples, for use in
procedural texture In computer graphics, a procedural texture is a texture created using a mathematical description (i.e. an algorithm) rather than directly stored data. The advantage of this approach is low storage cost, unlimited texture resolution and easy text ...
s and bump mapping * radiosity * support for textures and rendered output in many image formats, including TGA, PNG, and
JPEG JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and imag ...
, among others * extensive user documentation 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 Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all ...
(SMP), to allow the renderer to take advantage of multiple processors * support for
high-dynamic-range imaging In photography and videography, multi-exposure HDR capture is a technique that creates extended or high dynamic range (HDR) images by taking and combining multiple exposures of the same subject matter at different exposure levels. Combining m ...
(HDRI), including the OpenEXR and radiance 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 In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit CPUs and ALUs are those that are based on processor registers, address buses, or data buses of that size. A ...
compatibility Compatibility may refer to: Computing * Backward compatibility, in which newer devices can understand data generated by older devices * Compatibility card, an expansion card for hardware emulation of another device * Compatibility layer, compon ...
In July 2006,
Intel Corporation Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 serie ...
started using the beta version of 3.7 to demonstrate their new
dual-core A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such ...
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 () is a geometrical object that is a three-dimensional analogue to a two-dimensional circle. A sphere is the set of points that are all at the same distance from a given point in three-dimensional space.. That given point is the c ...
s, and
heightfield In computer graphics, a heightmap or heightfield is a raster image used mainly as Discrete Global Grid in secondary elevation modeling. Each pixel stores values, such as surface elevation data, for display in 3D computer graphics. A height ...
s, supports mathematically defined '' primitives'' such as the isosurface (a finite approximation of an arbitrary function), the
polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exampl ...
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 edges and three vertices. It is one of the basic shapes in geometry. A triangle with vertices ''A'', ''B'', and ''C'' is denoted \triangle ABC. In Euclidean geometry, any three points, when non- colline ...
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 () is a geometrical object that is a three-dimensional analogue to a two-dimensional circle. A sphere is the set of points that are all at the same distance from a given point in three-dimensional space.. That given point is the c ...
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 The quadriceps femoris muscle (, also called the quadriceps extensor, quadriceps or quads) is a large muscle group that includes the four prevailing muscles on the front of the thigh. It is the sole extensor muscle of the knee, forming a large ...
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 and should 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 suit
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.org
news News is information about current events. This may be provided through many different media: word of mouth, printing, postal systems, broadcasting, electronic communication, or through the testimony of observers and witnesses to event ...
server (with a Web interfacebr>also available
. Since POV-Ray's source is available there are unofficial
fork In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
s 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 speci ...
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
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc., Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and ...
,
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
. Support for
Intel Mac Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
s is not available in the
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc., Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and ...
version, but since
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
is a version of
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser 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, ...
the Linux version can be
compiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
on it. The 3.7 versions with SMP support are officially supported for Windows and Linux. Unofficial
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc., Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and ...
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 A license (or licence) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit). A license is granted by a party (licensor) to another party (licensee) as an element of an agreeme ...
''. 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, but restricts 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, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
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 the source code, design documents, or content of the product. The open-source model is a decentralized so ...
or
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
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, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
exchange with the greater FOSS ecosystem was impossible due to
License incompatibility License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requiremen ...
with
copyleft license Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, ''freedoms'' refers to the use of the work for any purpose, ...
s. One of the reasons that POV-Ray was not originally licensed under the free software
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
(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
Affero General Public License The Affero General Public License (Affero GPL and informally Affero License) is a free software license. The first version of the Affero General Public License (AGPLv1), was published by Affero, Inc. in March 2002, and based on the GNU General P ...
version 3 (or later). Thus POV-Ray is since then
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
according to the FSF definition and also
open source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open ...
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 SketchUp is a suite of subscription products that include SketchUp Pro Desktop, a 3D modeling Computer-Aided Design (CAD) program for a broad range of drawing and design applications — including architectural, interior design, industrial and ...
compatibility * Sunflow – an open-source rendering system for photo-realistic image synthesis, written in Java *
YafaRay YafaRay (formerly YafRay) is a free and open-source ray tracing program that uses an XML scene description language. There is a YafaRay addon for Blender 2.78. The ray tracer is licensed under the GNU Lesser General Public License (LGPL). Histo ...
– a popular free open-source ray-tracing engine


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 AGPL license