POV-Ray

维基百科,自由的百科全书
跳转至: 导航搜索
POV-Ray
POV-Ray SC.jpg
POV-Ray屏幕截图(Windows XP)
開發者 The POV-Team
穩定版本 3.7.0 / 2013年11月9日(12個月前) (2013-11-09)
預覽版本 3.7 rc3
操作系统 WindowsMac OSLinux
类型 三维计算机图形
许可协议 AGPLv3[1]
網站 www.povray.org

POV-Ray,全名是Persistence of Vision Raytracer,是一个使用光线跟踪绘制三维图像的开放源代码自由軟體。运行POV脚本语言。它是基于DKBTrace来开发的,DKBTrace是由 David Kirk BuckAaron A. Collins编写在 Amiga上的。POV-Ray早期也受到了Polyray raytracer 作者 Alexander Enzmann 的帮助。很多漂亮的图片就是由POV-Ray来制作的。

历史[编辑]

该软件最初发展始于80年代,是一個歷史悠久的三維算圖引擎。David Kirk Buck下载了一个为 Unix编写的Amiga光线跟踪软件的 source code。有趣的是,当他玩了一段时间后,他觉得应该自己写一个类似软件,最初名字叫DKBTrace 。 於是他將它贴在了一个论坛上面,以为别人会对它感兴趣。 1987, Aaron Collins下载了DKBTrace然后开始了 x86机器的移植工作。他和David Buck一起合作为它添加了更多功能。直到这个软件更加的流行,他们已经为了加新功能而应付不过来。 1989, David 把这个軟體变成了一个程序员团队合作的項目。这时候,他觉得已经没有资格来命名软件名字了。所以考虑了很多新的名字。 "STAR"(为动画和渲染而生存的软件:Software Taskforce on Animation and Rendering)是一个最初的打算,但是最后变成了 "持续不断更新版本的光线跟踪引擎Persistence of Vision Raytracer," 简写为 "POV-Ray" .

POV-Ray 是第一个在空间轨道渲染出图片的光线跟踪软件,由 马克·沙特尔沃思国际空间站 渲染。

特征[编辑]

POV-Ray不像一般的3D軟體有圖形化使用介面,其使用自有腳本語言來描述場景。POV腳本語言具備圖靈完備性,可以編寫巨集以及迴圈程式。

  • 支援幾種幾何元素以及構造實體幾何
  • 物件表面的折射、反射。
  • 支援TGA、PNG影像格式

当前版本[编辑]

最新的版本是3.7。

基元[编辑]

场景描述语言(Scene Description Language)例子[编辑]

下面的例子给出了场景描述语言 (Scene Description Language)在POV-Ray的一个应用实例。展示了使用视角,光源,一个简单的方块模型和缩放,旋转,平移变换的效果。

POV-Ray 根据左边的脚本的对应输出
#version 3.6;
#include "colors.inc"
global_settings { assumed_gamma 1.0 }

background   { color rgb <0.25, 0.25, 0.25> }

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> }

light_source { <0, 0, 0>
               color rgb <1, 1, 1>
               translate <-5, 5, -5> }

light_source { <0, 0, 0>        
               color rgb <0.25, 0.25, 0.25>
               translate <6, -6, -6> }

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> }

下面的脚本片段展示了使用变量声明,赋值,比较和while循环结构。

POV-Ray 根据左边的脚本的对应输出
#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


外在连结[编辑]