基于光线跟踪算法的真实感图形的生成

2017-01-11 01:59赵冬琴王晓帆
山西电子技术 2016年6期
关键词:视点多边形交点

赵冬琴,王晓帆

(1.山西财经大学 实验教学中心,山西 太原 030006;2.山西省城乡规划设计研究院,山西 太原 030000)

基于光线跟踪算法的真实感图形的生成

赵冬琴1,王晓帆2

(1.山西财经大学 实验教学中心,山西 太原 030006;2.山西省城乡规划设计研究院,山西 太原 030000)

随着科技的进步,真实感图形的生成技术被广泛应用。真实感图形是将实际或者虚拟的场景在计算机中构建,在生成真实感图形的算法中,光线跟踪算法是最常用的一种。在光线跟踪算法中,本文主要论述了光线跟踪算法的基本原理、光线与物体的求交、反射与折射光线的确定以及包围体树。重点是在光线跟踪算法中折射光线的确定之处加入了自己的方法,改进了折射光线的计算公式,减少了计算量,提高了算法的绘制图像的速度,生成的图形也比较真实。

真实感图形;光线跟踪;光照模型;求交

有人说,促成电影发展的多半功劳都来自于计算机图形生成技术的发展。真实感图形作为计算机图形生成技术中的一种,它生成的逼真的渲染结果,能使观察者产生身临其境的视觉效果。

在生成真实感图形的主要算法中,光线跟踪算法是最常用的一种。该算法原理相对比较简单,而且能够生成各种逼真的视觉效果,几乎在每个领域都得到了广泛的应用。自1980年whitted提出之后,光线跟踪算法得到广大学者的关注和研究。20世纪90年代以后,特技电影、电子游戏、电视广告等各种媒体的进入,真实感图形逐渐深入到人们的日常生活中[1],因此,逼真的真实感图形以及高速的光线跟踪算法具有很高的研究价值。

1 真实感图形的生成过程

真实感图形的生成过程一般包括场景造型、取景变换、消隐、视域裁剪及可见面光亮度计算等步骤。

场景造型是在计算机中建立的几何模型,它用于描述现实场景。场景造型主要包括多面体造型,场景中的物体由围在物体表面的多边形表示[2]。

取景变换[3]就是就将在场景坐标系中三维几何体的三维坐标转换到二维屏幕上的一系列坐标变换。取景变换主要包括视点坐标系、观察变换以及屏幕坐标系。

后向面消除可以消除掉因背离视线方向而显然不可见的多边形,提高取景变换的效率。

消隐就是消除场景中那些被遮挡而不可见的面。一个物体离视点越远,它就越有可能被另一个距视点较近的物体所遮挡。

消隐算法大致分为景物空间消隐算法和图像空间消隐算法两大类。图像空间消隐算法主要有Z缓冲器算法、扫描线算法、光线跟踪算法等。

2 光照明模型

光照明模型是生成真实感图形的基础,它根据光学物理定律,计算物体表面上任一点投向观察者眼中的光亮度的公式。光照明模型分为局部照明模型和整体光照明模型。

局部光照明模型只考虑被照明物体的几何形状对反射和折射光的影响。整体光照明模型可以同时模拟环境以及光源照明效果的光照明模型。whitted模型是整体光照明模型的典型代表。

whitted模型是在简单光照模型的基础上增加了环境光在镜面反射方向和规则折射方向对被照射点产生的光强。该模型可写成

I=Ilocal+KsIs+KtIt.

(1)

其中,Ilocal为光源直接照射引起的反射光强,Is为环境镜面反射光强,It为环境规则透射光强,Ks和Kt分别为反射系数和透射系数,均在0~1之间取值。

3 光线跟踪算法

光线跟踪算法原理简单、可以生成各种逼真的视觉效果,是生成真实感图形的主要算法。

3.1 光线跟踪的基本原理

光线跟踪系统中,物体空间中某个点当作视点。用两组互相垂直的平行线把投影屏幕分成若干个小方格(对应于显示器屏幕上的象素),一般将小方格中心作为取样点,如图1所示。

图1 光线跟踪算法示意图

图形生成是分别对每个象素计算颜色亮度来进行的。首先,从视点引一条视线穿过取样点,并延伸到物体所在的空间,求出它与物体的交点。把离视点最近的交点称为可见点。对于表面比较光滑的物体,在求得可见点之后,还必须沿反射线方向或折射线方向继续跟踪,看看是否有物体存在。完成此工作的视线称为间接视线。把其与物体的交点中离可见点最近的交点称为间接可见点。间接可见点处可能仍然需要从反射或折射方向跟踪视线。显然,此过程是个递归过程。

光线跟踪算法概述如下[4]:

Raytracing(Start-point,view-direction,weight,color)

{if(weight

color=black;

else

{

计算视线与所有物体的交点中离start-point最近的点;

if(无交点) color=black;

else

{Io=交点处光照模型值;

计算反射方向R;

Raytracing(交点,R,

Weight*Wr,Ir);/* Wr是经验取值0~1之间*/

计算折射方向T;

Raytracing(交点,T,Weight*Wt,It);/* Wt是经验取值0~1之间*/

color=Io+Ir+It;

}

}

}

3.2 光线与物体的求交

求交是光线跟踪算法的最核心的运算。在光线跟踪算法中,大部分的计算用于求交。

在本小节中,假设射线定义为:

X=Dt+E(t≥0) .

(2)

其中,X=(x,y,z)为射线上任意点;D=(d1,d2,d3)为射线方向,‖D‖=1;E=(e1,e2,e3)为射线起点,对应于视点或可见点。

1) 射线与多边形求交算法

在几何造型中,多边形是一种基本的面元素。由于多面体表面是由一系列的多边形组成的,所以,射线与多面体的求交就转化为射线与多边形的求交。假设多边形所在平面方程为:

ax+by+cz+d=0或NX+d=0

(3)

(N为单位法向量)

把射线的参数方程(2)代入平面方程得:

N(Dt+E)+d=0

解得t0=t=-(NE+d)/(ND)(ND≠0)

当ND=0时,射线与多边形平行,没有交点。当ND≠0时,交点为X0=Dt0+E。

2) 射线与长方体求交算法

射线与长方体的求交实质是射线与长方体的六个面求交。只要射线与某一个面相交,则射线与长方体相交。此算法虽然简单但效率较低。

3.3 反射光线与折射光线的确定

光线射到景物表面,会产生一条反射光线和一条折射光线。通过简单的向量运算,可得出反射光线单位向量为:

R=2N+L.

(4)

其中,N为物体表面单位法向量,L为入射光线的单位方向向量。(如图2)

图2 光的反射图

图3 入射角与折射角的关系图

光线照射到透明表面时,入射光会在和景物表面相交处形成折射光。由折射定律知道入射角与折射角的关系为(如图4所示):

sinθ1/sinθ2=η2/η1 .

(5)

其中θ1和θ2分别为入射角和折射角,η1和η2分别表示入射光和折射光所在空间介质的折射率。令η=η2/η1,为相对折射率。折射光线T的传统表示方法:

T=(cosθ2-(1/η)cosθ1)N-(1/η)L.

(6)

3.4 改进的折射光线的确定方法

在光线跟踪算法中折射光线的确定之处加入了自己的方法,将对(6)式做一个改进。如图4所示,L、R、T分别为入射、反射、折射光线,—N为N的反向量。令入射角为θ1,折射角为θ2。则由向量的基本运算可得:

T=-N+T1 .

(7)

R1=L+N.

(8)

若R和T都是单位向量,则:

R1/T1=sinθ1/sinθ2=η2/η1 .

(9)

由(9)式可得出:

T1=(η1/η2)R1 .

(10)

把式(8)代入式(10),可得:

T1=(η1/η2)(L+N) .

(11)

再把式(11)代入式(7),可得:

T=-N+(η1/η2)(L+N) .

又因为η=η2/η1,所以折射光线T最终可表示为:

T=(L+N)(1/η)-N.

(12)

图4 求折射光线示意图

式(12)即为改进后的折射光线的计算公式。显然,其计算量小,在较复杂的光线跟踪计算中,利用它会有一定的优势。

4 结束语

真实感图形技术是计算机图形学研究的前沿领域。光线跟踪算法是目前应用最为广泛的真实感图形绘制技术之一,也是近年来研究的热点。

本文主要讨论了基于光线跟踪算法的真实感图形生成技术。具体介绍了真实感图形的生成过程,简单讨论了光线跟踪算法。重点改进了折射光线的计算公式,简化了计算的复杂性,提高了算法的绘制速度,但是生成图像的真实感和清晰度[5]需要更进一步的验证,这也是未来研究的方向。

[1] 牛玉静.计算机光栅图形反走样基础算法研究[D].大连:辽宁师范大学,2010.

[2] 杜世培,吴中福.计算机图形学[M].重庆:重庆大学出版社,2001.

[3] 彭群生,鲍虎军,金小刚.计算机真实感图形的算法基础[M].北京:科学出版社,1999.

[4] 张彩明.计算机图形学简明教程[M].北京:高等教育出版社,2006.

[5] 张少帅.真实感图形中光线跟踪算法及其加速技术的研究[D].西安:西安电子科技大学,2014.

Realistic Graphics’ Generation Based on Ray Tracing Algorithm

Zhao Dongqin1, Wang Xiaofan2

(1.CenterofExperimentalandTeaching,ShanxiUniversityofFinanceandEconomics,TaiyuanShanxi030006,China;2.ShanxiUrbanandRuralPlanningDesignInstitute,TaiyuanShanxi030000,China)

With the progress of science and technology, realistic graphics generation technique is widely used. Realistic graphics is built with real or virtual scene in the computer. The ray tracing algorithm is one of the most commonly used algorithms for realistic graphics generating. This paper mainly discusses the basic principle of ray tracing algorithm, the intersection of light and objects, the determination of reflection and refraction of light and the bounding volume tree. The key point is to add its own method on the determination of refraction ray in the ray tracing algorithm, improve the calculation formula of refraction of light, reduce the amount of calculation and improve the speed of image drawing of the proposed algorithm, so the generated graphics is more realistic.

realistic graphics; ray-tracing; illumination model; intersection

2016-09-27

赵冬琴(1984- ),女,山西阳泉人,助理工程师,硕士研究生,主要研究方向:数据挖掘、人工智能、脑信息学。

1674- 4578(2016)06- 0015- 03

TP391.41,TP312

A

猜你喜欢
视点多边形交点
多边形中的“一个角”问题
多边形的艺术
解多边形题的转化思想
阅读理解
多边形的镶嵌
借助函数图像讨论含参数方程解的情况
试析高中数学中椭圆与双曲线交点的问题
视点
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点