利用3D物体排序优化阴影体算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

技术创新

《微计算机信息》2012年第28卷第10期

120元/年邮局订阅号:82-946

《现场总线技术应用200例》

软件时空

利用3-D 物体排序优化阴影体算法

An optimization of shadow volume by ordering 3-D objects

(长沙理工大学)

王健徐蔚鸿

WANG Jian XU Wei-hong

摘要:本文提出一种基于点光源的物体排序阴影体算法。方法是首先按与点光源的距离对场景中的物体进行排序,建立顺序

图。然后用z-pass 算法检测物体是否处于其他物体的阴影体中来判断物体是否被遮挡。最后对没有被遮挡的物体用阴影体算法计算阴影。实验分析表明该方法比传统的阴影体算法效率更高。关键字:阴影;阴影体;排序;顺序图中图分类号:TP399文献标识码:A

Abstract:A new shadow generation algorithm by ranking objects which based on point light source is presented in this paper.The main idea is to sort all objects in the scene by the distance between point light source and objects,and create sequence diagram.Then z -pass algorithm is used to detect whether the object is occluded.Finally,shadow volume algorithm is applied to build the shadows of objects not occluded.Experimental results show that this method is more efficient than the traditional shadow volume algo -rithms.

Keywords:shadow;shadow volume;ordering;ordering graphic

文章编号:1008-0570(2012)10-0504-02

1引言

阴影是虚拟场景的重要组成部分,它能有效地表现出不同物体之间相对位置关系,增加图像的立体感和层次感,提高虚拟环境的真实程度。但阴影生成计算量非常大,渲染具有阴影的场景需要大量的时间开销。尤其是在处理大规模场景和多边形数量增加时,渲染速度降低明显,渲染效果无法满足视觉要求。本文在阴影体算法的基础上,对场景中的物体进行排序(距离点光源从近到远)并生成顺序图。先对离点光源近的物体生成阴影体,然后检测后续物体是否处在该阴影体中。如果是则从顺序图

中删除这些物体的节点。

在大规模场景中,本算法可以减少生成阴影物体的数量,达到提升阴影生成算法效率的目的。

2阴影体算法

阴影体是根据光源和遮蔽物的位置关系计算出场景中会产生的阴影区域(shadow volume),然后对所有的物体进行检测,以确定其会不会受阴影的影响。要构造一个阴影体,首先要根据

光源与物体的相对位置找到所有的轮廓边。

轮廓边就是从光源角度看到物体的轮廓线,实际就是朝向光源的面和背向光源的

面所共享的边。

确定轮廓边的方法有很多种,其基本思想就是找出那些朝向相反(一个面向光源,另一个背向光源)的两个三角形的共享边。因为只有这样的边才会最终形成轮廓边,其它的边在光源看来都会在物体投影的内部。具体算法如下:

(a)遍历模型里面所有的三角形。

(b)计算入射光与三角形法向量的点积。用这个结果判断三角形是面向光源(点积小于0)还是背向光源(点积大于0)

(c)对于面向光源的三角形,将它的三条边压入一个栈,和里面的边进行比较,发现重复则删除这些边。

(d)检测完所有三角形的边后,栈里面剩下的就是当前光

源、

物体位置下的轮廓边。检测完轮廓边后,根据光源方向,将这些轮廓边投射出去,就形成了阴影体。

3利用物体排序阴影体算法

3.1、

场景中3-D 物体的排序这部分将描述3-D 物体排序算法。在给定点光源下,可对场景中所有物体按距点光源的远近进行排序。对于任意两个物体,通过一个平面将它们分到两个子空间里面。根据这可对任意两个物体进行排序,从而得到场景中所有物体的排序。通过一个分割平面,所有的物体形成一个局部顺序。

图1三个物体组成的场景

例如,如图1,参考点光源方向,用包含多边形P 2的平面对物体O 1,O 2进行分割,则O 2于O 1的尾部。只要获得场景中所有的这样的局部排序,就能得到场景中所有物体的顺序。为了描述局部顺序,可以定义一个顺序图。图中的每一个结点代表场景中的物体,每一条有向边代表着边首尾结点的空间顺序。例如,O i 位于O j 的尾部,则可用有向边表示。在顺序图中,O i 在有向边的尾部,O j 在有向边的头部。顺序图中所有的边可以由分割平面集分割场景中的所有物体所得。只要生成了顺序图,场景中物体的顺序就可以通过顺序图中的拓扑关系得知。

顺序图有如下性质:

(a)顺序图中的物体O i ,O j 存在有向边和有向边

,O i >,则O i ,O j 之间的顺序可以忽略,这两条边可以从顺序图中删除。这意味着可以不用考虑这两个物体间的顺序,它们可以以任何顺序显示在场景中。

王健:硕士研究生

504--

邮局订阅号:82-946120元/年技术创新

软件时空

《PLC 技术应用200例》

您的论文得到两院院士关注

(b)如果在两个以上物体间存在循环,,,则无法得知这些物体间的顺序,因为不能获得它们之间的拓扑关系。这种情况下,可以分割其中的一个物体来移除这个循环,以调整顺序图。

接下来描述物体排序算法。以顺序图作为输入,输出产生物体的顺序。

定义:用代表3-D 物体的顶点集合和代表空间位置关系的边集合构成有向图G 。在有向图G 中,当且仅当存在有向路径从顶点i 到顶点j,则顶点i 是顶点j 的后继。在给定参考点下,物体i 位于物体j 的尾部。如果i 是j 的后继,则j 是i 的前驱。

排序算法:

输入:顺序图G =(O,E),其中O ={O i |O i 是场景中的一个3-D 物体}。E ={E i |E i 是代表空间位置关系的一条边}通过对比任意两个物体构成。

输出:场景中所有物体的顺序。(a)遍历顺序图中的每一个物体。

(b)如果每一个物体都有一个前驱,则说明顺序图中存在一个循环。选择循环中的一个顶点,用分割平面把它分成两个物体,重构顺序图。

(c)选取一个没有前驱的物体O,输出O 。

(d)从顺序图中删除O 和由O 导出的所有物体。

3.2、

场景中3-D 物体的阴影生成获得了场景中物体的顺序后建立数据库,查询顺序图中的第一个节点(距光源最近的物体),根据它与光源的相对位置检测轮廓边,然后投射阴影体。遍历顺序图中的后续节点,用z-pass 算法检测物体是否处于阴影体中。如果物体处于阴影体中,则从顺序图中删除这个节点,直到所遍历完所有节点。查询顺序图中的下一个节点并生成阴影体,然后遍历后续节点,根据z-pass 算

法检测处于阴影体中的物体并删除相应节点。

如此迭代下去,直到处理完所有的节点。该算法描述如下:

输入:顺序图G

输出:场景中物体的阴影

(a)对第一个物体进行轮廓边检测,生成阴影体。

(b)检测后续节点的物体是否在阴影体中。如果在,则删除相应的节点。

(c)遍历更新后的顺序图,对后续的节点重复(a),(b)操作直到所有的节点经过处理。

(d)输出阴影。

4实验结果

本文所用的算法在VS2008,OGRE 图形引擎上实现,运行于Intel Core2平台。场景中含单个点光源,静态场景取恒定多边形

个数。

图2为包含多个立方体的场景渲染图,点光源位于图中左上角,图中底部三个黑色矩形区域为场景中的立方体的阴影,立方体悬浮在空中。分别用阴影体算法和基于物体排序阴影体算法绘制场景。

图2包含多个立方体的场景图

表1实验数据

实验结果如表1所示。在固定光源、三角形面片数量的情况下,两种算法的阴影绘制效果相同。基于物体排序阴影体算法的绘制效率要明显高于阴影体算法的绘制效率。说明本文算法较传统阴影体算法性能有一定提升。

5总结与展望

本文提出了一种物体排序算法来改进传统的阴影体算法,在实时场景绘制的预处理阶段生成场景中物体的顺序图。按照顺序图中物体的顺序,首先生成距点光源最近的物体的阴影体,查询顺序图中处于该阴影体中的物体,删除相应节点。更新顺序图后继续迭代下去直至所有的结点都处理完。通过本文提出的算法,可以减少场景中生成阴影的物体,提高阴影生成的速度。本文创新点有:提出一种基于点光源的3D 物体排序算法;与以往阴影体算法以多边形为基本处理单元不同,本文算法是以物体为基本单位进行阴影绘制的。算法中间引入了面向对象思想。

本文无抄袭,作者全权负责版权事宜。参考文献

[1]屠建军,王璐,屠长河,孟祥旭.基于GPU 的风格模型平滑阴影的实时绘制[J].计算机辅助设计与图形学学报:2010,23(1):139-151.

[2]刘列明,吴恩华.一种基于点光源的三维阴影的实时生成算法[J].软件学报:2000,11(6):785-790.

[3]Brabec S,Seidel HP.Shadow volumes on programmable graphics hardware [J].Computer Graphics Forum:2003,25(3):241-252.

[4]Xiao-Hua Cai,Yun-Tao Jia,Xi Wang,Shi-Min Hu,Ralph R.Martin .Rendering soft shadows using multilayered shadow fins[J].Computer Graphics Forum:2006,25(1):15-28

[5]郝祥顺,杨旭波.可插值的领域过滤软阴影[J].微计算机信息:2009,11-3:156-159.

[6]McCool M D.Shadow volume reconstruction from depth maps [J].ACM Transactions on Graphics,2000,19(1):1-26.

[7]Frank D.Luna.DirectX 9.03D 游戏开发编程基础[M].北京:清华大学出版社2007:129-132.

[8]Y.Chen,D.Wen,L.Jing,P.Shi.Shadow information recovery in urban areas from very high resolution satellite imagery [J].Computer Graphics Forum:2007,28(15):3249-3254.

[9]越沁平,车英慧.基于Harr 小波的动态场景全频阴影绘制[J].软件学报:2010,28(3)2-10.

作者简介:王健(1985-),男,汉族,湖南长沙人,硕士研究生,主要研究方向为计算机图形学、软件工程;徐蔚鸿(1963-),男,汉族,博士、教授,主要研究方向为人工智能、图像处理、模式识别、软件工程。

Biography:WANG Jian (1985-),M,ChangSha Hunan,postgraduate,the major research area is computer graphics.(410114长沙理工大学)王健徐蔚鸿

通讯地址:(410114湖南省长沙市长沙理工大学云塘校区计通学院09级研究生881信箱)王健

(收稿日期:2011.10.28)(修稿日期:2012.01.28)

505--

相关文档
最新文档