POV-Ray是由名为Persistence of Vision Development team的开发小组根据DKBTrace2.12(由David K.Buck和Aaron A.Collins共同编写)编写而成的。它绘制图形采用的是专用的场景描述语言,从而节省了大量编制算法程序的时间。Persistence of Vision Development team是一个研究光线追踪方面的团队,没有注册公司,所以这个软件是无偿提供的。多种版本的POV-RAY软件被他们开发出来,包括DOS WINDOWS LINUX和UNIX并且每种软件的程序原代码都是公开的,这样用户可以能够很简单的变换和增加自己所需要的功能。这也是该软件包的一大特点所在。能够从ftp.povray.org站点下载软件,POV开发小组网址为www.povray.org。[2]
1.2 本论文的主要内容
本论文利用POV-Ray软件,编写二文三文空间所对应的算法,通过算法语言的编写建立相应的场景,在计算机上运行出所需要的图像,根据图像直观的了解POV-Ray所拥有的功能、优点。
第1章为绪论部分。主要阐述了本课题的意义以及背景,也介绍了本论文的布局和概要内容。
第2章为相关基础部分。介绍了POV-Ray的特点、功能,最基础的算法描述,为后续的二文三文仿真实现做理论准备。
第3章介绍了POV-Ray仿真的基本流程。
第4章为论文主题部分。先编写二文成像所需要的代码,运行软件得到图像,在此基础之上进一步理解三文图像所需要的条件,得出对应的结果。实现二文三文激光扫描仪的仿真,更加直观的了解POV-Ray所具备的特点。
2 POV-Ray基础知识
2.1 POV-Ray的特点
POV-Ray与其他绘图软件不同,它采用的是编译式输入。与此同时它为用户提供了便捷的操作方式,用户能够很快掌握其使用方法。[3]需要通过编程来实现三文图形显示,这点和OpenGL十分类似。但它具有以下的特点:
场景描述语言方便使用,在POV-Ray中,物体的颜色、形状、位置能够直接定义出来,[4]然后系统会根据语言直接绘制出图形。而OpenGL描述一个物体的特征需要调用各种函数。
场景描述文件库十分庞大。
形状、颜色、材质等标准文件库都是预先定义好的。
作出的图形效果精细逼真,具有很高的质量。
做出的图形大小可调,硬件条件满足的情况下,在计算机上可以显示15或者24位。
照相机形式多样,可以形成多样的图形。
光源种类丰富。
2.2 POV-Ray渲染图像的机制
(1)开始渲染后,相机类型要先判断出。相机类型可以通过图2.1中的Section来改变。
图2.1 相机类型设定
(2)确定需渲染像素点所处空间位置。
(3)从相机的类型来判断光线跟踪的起点位置及光线所投射方向。
(4)利用光线与空间物体交点处的环境光照颜色,设置需渲染像素的光照及颜色值。[5]
(5)重复步骤(2)、(3)、(4)。
2.3 光线追踪技术基本思想
光线追踪法简单来说就是光线从视点出发,随后追踪光线,最后到达三文图形环境的过程。,确定每条光线(对应一个采样点)与最近(沿光线方向)的物体面的相交点。反射或折射光线的产生是由于物体的材料性质的不同,使用同样的方式递归追踪新产生的光线,光线在图形环境中的传播的过程中,每个采样点(像素)可通过光线/物体相交点组成的光线树来建立,通过搜索这棵树可以确定这个像素的最后光强,然后计算每个结点的值,计算的过程都是通过对应光照模型,像素的光强值就是计算出的结点值。
像素处于阴影之中的原因是:一条从视点出发的光线穿过某个像素,在这条光线到达光源之前遇到了物体,那么,物体就挡住了这个像素,导致了阴影的产生。[6] 基于POV-Ray的二维及三维激光扫描仪的仿真实现(2):http://www.751com.cn/zidonghua/lunwen_20646.html