Povray focal blur animation mode tan.gif
   HOME

TheInfoList



OR:

The Persistence of Vision Ray Tracer, most commonly acronymed as POV-Ray, is a cross-platform 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 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 significantly improved graphi ...
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 available under the AGPL-3.0-or-later license.


History

Sometime in the 1980s, David Kirk Buck downloaded the source code for a Unix ray tracer to his
Amiga Amiga is a family of personal computers introduced by 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 significantly improved graphi ...
. 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 as ...
(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 Forum or The Forum (plural forums or fora) may refer to: Common uses * Forum (legal), designated space for public expression in the United States *Forum (Roman), open public space within a Roman city **Roman Forum, most famous example *Internet ...
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 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 combi ...
* 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 droplets, frozen crystals, or other particles suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may com ...
) * reflections, refractions, and light caustics using photon mapping * surface patterns such as wrinkles, bumps, and ripples, for use in procedural textures and bump mapping * radiosity * support for textures and rendered output in many image formats, including TGA, PNG, and
JPEG JPEG ( ) 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 (HDRI), including the
OpenEXR OpenEXR is a high-dynamic range, multi-channel raster file format, released as an open standard along with a set of software tools created by Industrial Light & Magic (ILM), under a free software license similar to the BSD license. It is notabl ...
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
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 series ...
started using the beta version of 3.7 to demonstrate their new dual-core Conroe processor due to the efficiency of the SMP (symmetric multiprocessing) implementation.


Primitives

POV-Ray, in addition to standard 3D geometric shapes like tori, spheres, 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 (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 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 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 (communication), media: word of mouth, printing, Mail, postal systems, broadcasting, Telecommunications, electronic communication, or through the tes ...
server (with a Web interfacebr>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 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, Windows and Linux. 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 series ...
s is not available in the Macintosh version, but since Mac OS X is a version of Unix 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 that ...
on it. The 3.7 versions with
SMP SMP may refer to: Organisations * Scale Model Products, 1950s, acquired by Aluminum Model Toys * School Mathematics Project, UK developer of mathematics textbooks * '' Sekolah Menengah Pertama'', "junior high school" in Indonesia * Shanghai Mun ...
support are officially supported for Windows and Linux. Unofficial Macintosh 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 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 sof ...
or free software according to the
OSI OSI may refer to: Places * Osijek Airport (IATA code: OSI), an airport in Croatia * Ősi, a village in Veszprém county, Hungary * Oši, an archaeological site in Semigallia, Latvia * Osi, a village in Ido-Osi, Ekiti State, Nigeria * Osi, Ekiti ...
or the FSF definition of the term. This was a problem as source code 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 requirement ...
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 (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 version 3 (or later). Thus POV-Ray is since then free software according to the FSF definition and also open source software 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 an ...
compatibility *
Sunflow Sunflow is an open-source global illumination rendering system written in Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to ...
– an open-source rendering system for photo-realistic image synthesis, written in Java * YafaRay – 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