POV-Ray

from Wikipedia, the free encyclopedia
POV-Ray

Povray logo sphere.png
Screenshot
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.

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

POV-Ray result of the scene described on the left.
// 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
    }
}
Povray basic scene.gif
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
    }
}
Povray cuboid.gif
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
    }
}
Povray cylinder.gif
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
    }
}
Povray cone (blunt) .gif
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
    }
}
Povray torus.gif

Web links

Wikibooks: Raytracing with POV-Ray  - learning and teaching materials
Commons : POV-Ray  - album with pictures, videos and audio files

Individual evidence

  1. http://www.povray.org/news/index.php#323
  2. Release 3.7.0.8 . May 27, 2018 (accessed May 27, 2018).
  3. The povray Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on September 3, 2018).
  4. a b POV-Ray License. Persistence of Vision Raytracer Pty. Ltd., accessed November 6, 2014 .
  5. POV-Ray download
  6. http://wiki.povray.org/content/Documentation:Contents