Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
POV-Ray
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Features== [[Image:Glasses 800 edit.png|thumb|Glass scene rendered by POV-Ray demonstrating [[Radiosity (computer graphics)|radiosity]], [[photon mapping]], [[focal blur]], and other photorealistic capabilities (image created by [[Gilles Tran]])]] POV-Ray has matured substantially since it was created. Recent versions of the software include the following features: * a [[Turing-completeness|Turing-complete]] scene description language (SDL) that supports macros and loops<ref>[http://paulbourke.net/geometry/supershape/ Paul Bourke: Supershape in 3D] are examples of POV-Ray images made with very short code</ref> * a library of ready-made scenes, textures, and objects * support for a number of [[geometric primitive]]s and [[constructive solid geometry]] * several kinds of [[light source]]s * atmospheric effects such as [[fog]] and ''media'' ([[smoke]], [[clouds]]) * [[Reflection (physics)|reflection]]s, [[refraction]]s, and light [[caustic (optics)|caustics]] using [[photon mapping]] * surface patterns such as [[wrinkle]]s, bumps, and [[Capillary wave|ripples]], for use in [[procedural texture]]s and [[bump mapping]] * [[Radiosity (computer graphics)|radiosity]] * support for [[Texture (computer graphics)|textures]] and rendered output in many image formats, including [[Truevision Targa file format|TGA]], [[Portable Network Graphics|PNG]], and [[JPEG]], among others * extensive [[user documentation]] * support for custom output resolutions<ref>{{Cite web |title=POV-Ray: Documentation: 2.1.2.2 General Output Options |url=https://www.povray.org/documentation/view/3.6.0/217/ |access-date=2023-09-08 |website=www.povray.org}}</ref> (This includes extreme resolutions such as [[16K resolution|16K]]) * two types of [[Supersampling|SSAA]]<ref name=":0">{{Cite web |title=POV-Ray: Documentation: 2.1.2.8 Tracing Options |url=http://www.povray.org/documentation/view/3.6.2/223/ |access-date=2023-09-08 |website=www.povray.org}}</ref> Type 1 is an adaptive, non-recursive, super-sampling method. It is ''adaptive'' because not every pixel is super-sampled. Type 2 is an adaptive and recursive super-sampling method. It is ''recursive'' because the pixel is sub-divided and sub-sub-divided recursively. The ''adaptive'' nature of type 2 is the variable depth of recursion.<ref name=":0" /> 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 (graphics)|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]] (SMP), to allow the renderer to take advantage of [[Multiprocessing|multiple processors]] * support for [[high-dynamic-range imaging]] (HDRI), including the [[OpenEXR]] and [[Radiance (software)|radiance]] file formats * improved [[Bounding volume|bounding]] using [[Binary space partitioning|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 computing|64-bit]] [[computer compatibility|compatibility]] In July 2006, [[Intel Corporation]] started using the [[beta version]] of 3.7 to demonstrate their new [[dual-core]] [[Conroe (microprocessor)|Conroe processor]] due to the efficiency of the SMP (symmetric multiprocessing) implementation. ===Primitives=== [[File:Venn 0000 0001 0001 0110.png|thumb|Rendering of the [[Venn diagram]] of four spheres created with [[constructive solid geometry]], or CSG. The source is [[commons:File:Venn 0000 0001 0001 0110.png#POV-Ray source|on the description page]] of the image.]] [[Image:PNG transparency demonstration 1.png|thumb|Some colored [[dice]] rendered in POV-Ray. [[Constructive solid geometry|CSG]], [[refraction]] and [[focal blur]] are demonstrated.]] POV-Ray, in addition to standard [[3d geometry|3D geometric]] shapes like [[torus|tori]], [[sphere]]s, and [[heightfield]]s, supports mathematically defined ''[[Primitives (computer graphics)|primitives]]'' such as the [[isosurface]] (a finite approximation of an arbitrary function), the [[polynomial]] primitive (an [[Infinity|infinite]] object defined by a [[Degree of a polynomial|15th order or lower polynomial]]), the [[julia set|julia fractal]] (a 3-dimensional slice of a [[Four-dimensional space|4-dimensional]] fractal), the [[superellipse|superquadratic ellipsoid]] (an intermediate between a sphere and a cube), and the [[parametric feature based modeler|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]] [[polygon mesh|mesh]]es 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 [[UV sphere|quads]] or [[Icosphere|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 be created first in mesh-based modeling applications such as [[Wings 3D]] and [[Blender (software)|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. [[Image:I example povray scene rendering.png|thumb|right|POV-Ray image output based on the script]] <syntaxhighlight lang="pov"> #version 3.6; // Includes a separate file defining a number of common colours #include "colors.inc" global_settings { assumed_gamma 1.0 } // Sets a background colour for the image (dark grey) background { color rgb <0.25, 0.25, 0.25> } // 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 { location <0.0, 0.5, -4.0> direction 1.5*z right x*image_width/image_height look_at <0.0, 0.0, 0.0> } // Places a light source // color: Sets the color of the light source (white) // translate: Moves the light source to a desired location light_source { <0, 0, 0> color rgb <1, 1, 1> translate <-5, 5, -5> } // 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 { <0, 0, 0> color rgb <0.25, 0.25, 0.25> translate <6, -6, -6> } // 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 { <-0.5, -0.5, -0.5>, <0.5, 0.5, 0.5> texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1/2 } } rotate <45,46,47> } </syntaxhighlight> The following script fragment shows the use of variable declaration, assignment, comparison and the while loop construct: [[Image:I example povray scene rendering2.png|thumb|right|POV-Ray image output based on the script]] <syntaxhighlight lang="pov"> #declare the_angle = 0; #while (the_angle < 360) box { <-0.5, -0.5, -0.5> <0.5, 0.5, 0.5> texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1/2 } } rotate the_angle } #declare the_angle = the_angle + 45; #end </syntaxhighlight>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
POV-Ray
(section)
Add topic