Your Legal Resource

Pov-ray Cyclopedia - Rand At Bottom Of Page


(Persistence of Vision Raytracer) A popular freeware ray-tracing program for DOS, Windows, Mac, and various Unix platforms from the Persistence of Vision development team. The program and source code are available at

The POV (Persistence of Vision) format is used to store the scene description language used by the POV-Ray (Persistence of Vision Raytracer) software package. This format is very similar to other vector-based animation and ray tracing formats.

POV-Ray is equipped for making photorealistic, 3D pictures utilizing a graphical delivering method called ray tracing. Basic shapes, surfaces, lights, and properties are accessible to deliver pictures. POV-Ray likewise upholds many progressed beam following highlights, for example, Bezier patches, masses, stature fields, and knock and material planning.

Pictures are made by a POV-Ray client composing numerical code in an editorial manager and delivering the picture utilizing the beam following motor. POV-Ray then, at that point works out the delivered picture to a record utilizing either the TGA (24-bit) or GIF (8-bit) raster document designs.

Since the way toward making a POV-Ray picture is like how a software engineer composes and assembles code (as opposed to how a craftsman utilizes a paint program), POV scene-depiction records are more much the same as source code documents than to run of the mill designs design records.

The data put away in a POV language document is a bunch of portrayals of the scenes in the delivered picture. The POV scene depiction language may consequently be considered as a PostScript-like page portrayal language for beam followed pictures.

File Details

POV files are normal ASCII text and do not contain a header or any binary information. Text information in a POV file is case-sensitive. Lowercase words are reserved language keywords. Uppercase words are used for naming data constructs. A single character in double-quotes is a literal character.

Comments in POV files use with the Standard C comment tokens /* */ or the C++ comment token //. The Standard C tokens may be nested. Data may be inserted into a POV file using the #include declaration, as follows:

#include ""

POV includes files that normally have the extension ".inc" and contain information that is shared between multiple POV renderings.

One nice feature of POV is the ability to pre-define a set of data that is used repeatedly, similar to the type definition (typedef) feature found in the C language.

Predefinition is accomplished using the #declare keyword. In this example, we declare a texture with color parameters values for white:

texture { color red 1 green 1 blue 1 }

We can predefine the color white for visual clarity in meaning and for later reuse in the file:

#declare WHITE = color red 1 green 1 blue 1

texture { color WHITE }


Code: [Select]

#macro OrientZ(p1,p2,cs)

  #local nz = vnormalize(p2-p1);

  #local nx = vnormalize(vcross(cs,nz));

  #local ny = vcross(nz,nx);



box { <0,0,0> <1,1,0.1>

      pigment { image_map { png "maderas.png"

                map_type 0

                interpolate 2 }


      translate <-0.5,-0.5,-0.5>

      //scale 2

      translate 2*z

      scale 65




The simplest way to do this is:

#declare lower_bound = something;

#declare upper_bound = somethingelse;

#declare MySeed = seed(2531); // or some other number, big and prime is nice

object { whatever

              translate lower_bound + rand(MySeed)*(upper_bound - lower_bound) }

// end

something and something else can be vectors, but they will distribute within a

straight line, so you will have to do this in triplicate for three different

vectors to fill space.

Image of Pov-ray Cyclopedia - Rand At Bottom Of Page