POV-Ray
POV-Ray
|
|
---|---|
The Utah Teapot rendered in POV-Ray using shadows, specular highlighting, colored light and bump mapping |
|
Basic data
|
|
Publishing year | July 1991 |
Current version |
3.7.0.8 ( May 27, 2018 ) |
operating system | Platform independent |
programming language | C ++ |
category | Ray tracer |
License | AGPLv3 |
German speaking | No |
www.povray.org |
POV-Ray ( Persistence of Vision - literally: the persistence / sluggishness of seeing / afterimage on the retina - like looking into the sun) is a ray tracer , i.e. a 3D computer graphics program . The possible ambiguities in interpreting the name are by design. The computational effort for image generation is so high that even today (2018) a personal computer can be occupied with the calculation of a single image for several minutes, hours or even days.
technology
POV-Ray is a pure renderer and does not contain its own 3D modeler . The scene shown is defined using its own scene description language (SDL), the syntax of which is similar to the programming languages C and C ++ . External tools such as Moray or KPovModeler can be used to create complex models .
In contrast to the usual renderers, the underlying data is not based on polygons, but on mathematical formulas and bodies. This makes it possible, for example, to display fractals in three dimensions. However, this has the consequence that the compatibility is severely restricted. There are many conversion programs from other 3D graphics formats to POV-Ray format, but none that can convert POV-Ray data to another format without loss of information.
POV-Ray masters ray tracing , an adapted radiosity calculation and rudimentary photon maps for calculating caustics .
There are no theoretical limits to the complexity of the rendered images; in practice, the available computing time is the limiting factor.
history
Around 1986 David Kirk Buck owned an Amiga computer. At that time, one of his friends showed him a ray tracer, which was not compatible with Buck's Amiga. So he wrote the appropriate drivers so that he could use the tracer himself. This ray tracer could only show a black or white plane and simple spheres. Since Buck was nevertheless impressed by the program, he programmed the program a little further so that it also supported color representations. He realized that it would be better to develop your own raytracer - DKBTrace was born.
In 1987 or 1988 Buck was contacted by Aaron Collins because he had modified DKBTrace in such a way that it could also be used on a PC instead of only on the Amiga as before. This created a collaboration between Buck and Collins. While the two were working on version 2.12 of DKBTrace - the last published version - they became aware of a group of people who were very interested in DKBTrace and created many different scenes with it. Since this group was frustrated that Buck and Collins could not add new functions to DKBTrace quickly enough, they made the suggestion to develop another new ray tracer. Since Buck was spending less and less time with ray tracing at this time, he made this group on CompuServe the offer to develop a new ray tracer based on DKBTrace. He linked this offer to three conditions:
- The program must be offered as freeware and the source code must be freely available
- The program must be platform-independent
- The program must have a different name than "DKBTrace"
Since they agreed to these conditions, they started to find a name, suggesting the name "Persistance Of Vision Raytracer", which was ultimately shortened to "POV-Ray".
The first published version of POV-Ray - POV-Ray 0.5 - was basically an improved version of DKBTrace, because POV-Ray 0.5 still uses the same syntax, but had far more functions than DKBTrace 2.12. A separate syntax for POV-Ray was only developed with version 1.0. At the time of POV-Ray 2.0's release, Buck also left the development team after Collins had previously left, and Chris Cason became the head of the development team.
The current official version for all POV-Ray systems is 3.7.0 (released on November 6, 2013). Version 3.7 includes the greatest innovation, the support of multithreading . There are also minor syntax changes and language additions. From version 3.7.0 the software is published under the GNU Affero General Public License Edition 3 (AGPLv3).
Versions
There are versions for almost all common operating systems , especially some that can be operated on distributed systems ( clusters ). Thus the computing power of POV-Ray is in direct relation to the number of available computers and is scalable through this.
Various objects rendered with radiosity
four precision dice
" House of the Temple " in Washington DC
application
Scene setup
A scene is described by means of a programming language, the "Scene Description Language" (SDL). All elements of the scene, such as camera, light sources, objects and background, can be described in great detail. The SDL contains a number of elements that also make up "normal" programming languages, such as variables, loops, arrays, If queries, etc. Complex scenes can thus be described with just a few program lines.
Example basic scene
// Grundgerüst
#include "colors.inc"
global_settings {
assumed_gamma 1.0
}
camera {
location <0,0.5,-4>
look_at <0,0,0>
}
sky_sphere {
pigment {
gradient y
color_map {
[0.0 rgb <0.6,0.7,1.0>]
[0.7 rgb <0.0,0.1,0.8>]
}
}
}
light_source {
<-30,30,-30>
color rgb <1,1,1>
}
// Szeneninhalt
// Eine grüne Ebene
plane {
y, -1
pigment {
color rgb <0.2,0.8,0.2>
}
}
// Eine rote Kugel
sphere {
<0,0,1>, 1
texture {
pigment {
color Red
}
}
}
Such scenes can quickly assume great complexity, e.g. For example, you can use POV-Ray to simulate a building or create an animation.
Basic objects
Surname | syntax | code | Result |
---|---|---|---|
Bullet |
sphere {
<x,y,z>,Radius
pigment {
color Farbe
}
}
|
sphere {
<0,1,0>,1
pigment {
color Red
}
}
|
|
Cuboid |
box {
<x-Ecke1,y-Ecke1,z-Ecke1>,
<x-Ecke2,y-Ecke2,z-Ecke2>
rotate <x-Drehung,y-Drehung,z-Drehung>
pigment {
color Farbe
}
}
|
box {
<0,0,0>,<1,1,1>
rotate <-30,0,30>
pigment {
color Red
}
}
|
|
cylinder |
cylinder {
<x-unten,y-unten,z-unten>,
<x-oben,y-oben,z-oben>,Radius
pigment {
color Farbe
}
}
|
cylinder {
<0,0,0>,<1,1,1>,1
pigment {
color Red
}
}
|
|
Cone (blunt) |
cone {
<x-unten,y-unten,z-unten>,Radius-unten,
<x-oben,y-oben,z-oben>,Radius-oben
pigment {
color Farbe
}
}
|
cone {
<0,-1,0>,1,
<0,1,0>,0
pigment {
color Red
}
}
cone {
<0,-1,0>,1,
<0,1,0>,0.25
translate <5,0,0>
pigment {
color Red
}
}
|
|
Torus |
torus {
Hauptradius,Nebenradius
rotate <x-Drehung,y-Drehung,z-Drehung>
pigment {
color Farbe
}
}
|
torus {
0.5,0.2
rotate <0,30,30>
pigment {
color Red
}
}
|
Web links
- Official website
- Small introduction to the program
- Friedrich A. Lohmüller: POV-Ray Tutorial
- Icons with Povray and their scripts
- sr-povray A version 3.6 extended by Leo Brewin to include Lorentz contraction
- Introduction to POV-Ray
Individual evidence
- ↑ http://www.povray.org/news/index.php#323
- ↑ Release 3.7.0.8 . May 27, 2018 (accessed May 27, 2018).
- ↑ The povray Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on September 3, 2018).
- ↑ a b POV-Ray License. Persistence of Vision Raytracer Pty. Ltd., accessed November 6, 2014 .
- ↑ POV-Ray download
- ↑ http://wiki.povray.org/content/Documentation:Contents