中华傅山园三维虚拟漫游系统的研究与设计
2012-11-14孔令德杨慧炯
刘 杰, 孔令德, 杨慧炯
(太原工业学院, 山西太原 030008)
0 引言
虚拟现实(Virtual Reality)技术是20世纪90年代兴起的一个新的研究领域,虚拟现实是一门集成了人与信息的科学,其核心是由计算机生成的三维交互式虚拟环境。虚拟漫游是虚拟现实技术中的一个重要方向,是对虚拟三维场景的
实时漫游。虚拟漫游系统包括一个逼真的视、听、触觉一体化的特定范围的虚拟环境。它是一个真实空间或假想空间的实时仿真虚拟空间,用户借助必要的装备以自然的方式在该虚拟空间中漫游,从任意角度对环境中的虚拟对象进行观察,从而产生身临其境的感觉,同时也可以对其中的物体进行规划和操作。
“中华傅山园虚拟漫游系统”打破了传统的文字、图片等静态表现方式,将中华傅山园风貌以三维立体模型动态呈现在浏览者面前,浏览者在互联网上点击鼠标即可“参观”园内景观和各种设施,获得身临其境的感觉;用虚拟的境界来展示中华傅山园的风貌,让更多的人通过网络来了解中华傅山园,吸引更多的游客来草坪区旅游。中华傅山园三维虚拟漫游系统同时为今后的规划管理提供了直观的表现形式。
中华傅山园全景漫游系统主要包括傅山园中的牌楼、山门、林荫道、状元桥、戏台、傅山生平馆、大殿、膳食院、医药院、书法院、佛教院、儒教院、道教院、无功墙等景观的建模,以及大规模地形地表、粒子系统、碰撞检测等方面的技术的研究。
1 总体设计
中华傅山园漫游系统采用Unity3D这一款作为系统开发3D引擎。整个系统的漫游以第一人称视角进行,给观赏者更强的带入感。整个景区,展厅,人物, 植被,等所能见到的物件都需要用到 3DMAX 来进行模型的制作。为了能够让景区运行流畅和方便后面程序的编辑制作,在模型面数上控制较为精简,配合真实的纹理材质贴图,能达到更好的仿真效果。主要建筑将参考真实傅山园的照片来制作模型。分为主建筑群和附体建筑群。内设建筑在有需要出现的地方进行细致建模。灯光采取 UDK 里的灯光系统,主要以白天的自然天光为主,颜色为淡蓝的冷色调作为照亮整个场景的总灯光,能使整个场景光源统一,阴影统一。远处山体植被和建筑不会作为近景显示的则不进行实体 3D 建模,而是采取 plan 面片建模配合二维贴图形式表现,天空和地面则采取球状包裹模型,天空贴图则采取包裹式的无缝贴图来制作,为的是在后面制作动画时能让远处的云彩有流动感,不仅生动而且还大大节省资源。植被花草的制作采取模型堆加 plan面片,透明贴图镂空来表现叶子的造型配合真实的植被贴图实现。特效方面主要表现用户点击触动开关命令时出现,可以运用 UNITY3D 程序来生成实现,一些特殊的效果可以在 3DMAX 里完成。
本系统的具体需求通过UML(United Model Language,统一建模语言)对系统功能和模型进行分析和设计,选用Rational Rose平台实现,建立系统用例如图1所示。
为了构建一个身临其境的虚拟环境,视景仿真系统必须能逼真的模拟虚拟环境中所有对象在现实世界中的几何、物理、行为等诸多自然特性。因此,这就要求在虚拟环境的三维建模过程中,对对象进行几何建模、物理建模和行为建模等。
图1 系统用例图
(1)几何建模
对象的几何建模是生成高质量视景图像的先决条件,它是用来描述对象内部固有几何性质的抽象模型。目前,几何建模技术发展比较成熟,国内外已经开发了很多三维建模工具供用户选择。基于几何外形和纹理映射的几何建模方式是常用的开发手段。
(2) 物理建模
虚拟对象物理建模包括定义对象的质量、重量、惯性、光照、光滑或粗糙、硬度和弹塑性等,这些特性与对象的几何特性和行为特性结合起来,可以更加真实地反映对象,形成更逼真的虚拟模型。
(3)行为建模
虚拟对象的行为建模体现了对象的自主性特性,也就是说对象的运动、活动、变化,以及与周围环境和其他动态实体之间的动态关系,逼真的、自然的表现。
其中主要景点模型包括:地形模型的建立、大殿的建模、牌楼的建模、山门的建模、戏台的建模、状元桥的建模等(见图3)。
图2 系统模型图
图3 模型场景图
2 纹理影射技术
纹理映射是把二维的图像位图上的像素值映射到三维实体模型的对应顶点上,以增强实体模型的真实感。它本质上是一个二维纹理平面到三维景物表面的一个映射。从数学的观点来看,映射可以用下式描述:
(u,v)=F(x,y,z)
其中(u,v)、(x,y,z)分别是纹理空间和物体空间中的点。
例如:将一纹理映射到一高为 h,半径为 r的圆柱面可用下面的参数形式表达:
x=rcosθ,y=rsinθ,z=h·Ф
其中 0≤θ≤2π,0≤Ф≤ 1。
通过下列线性变换将纹理空间[0,1]×[0,1]与参数空间[0, 2π]×[0,1]等同起来:u=θ/ 2π,v=Ф。
如此就得到了从物体空间到纹理空间的纹理表达式。
3 虚拟漫游场景的构建
图形学里,复杂的物体可以用三角网格来绘制。为了精确描述一个物体,往往需要使用成千上万个三角形。本系统中解决问题使用LOD技术,它是基于我们在观察物体周围的环境时物体离我们越远越模糊、越近越清晰的常识。一般来说,LOD 方法就是按照距离视点的远近而用不同的细节模型来进行描述,如果模型离视点比较远,我们就用比较粗糙一点的 LOD 模型来进行绘制,而如果模型离视点比较近,我们就用比较精细 LOD 模型来进行绘制。
在设计地表和天空网格的渲染都是通过一个递归的过程来实现的。通过遍历整个四叉树,当到达四叉树的叶子的时候,即一个节点不再被分割的时候,就把这个节点绘制出来。本文采用多线程设计模式,将其一分为二,两个线程完全并行执行以实现实时、动态的连续层次细节地形的渲染。线程一的功能是:根据实时渲染需求和五点定位Loo四叉树结构信息,生成或修改(第一次是生成,之后是修改)顶点缓冲区中的图元信息并保存以待渲染。一般而言,相机不会经常出现突然跳跃的现象,所以每次在顶点缓冲区中需要修改的信息相对整体信息而言并不是很多,这极大地加快了处理速度。线程二的功能是:一次性渲染地表顶点缓冲区中的图元而不是一个一个节点地逐一渲染。
4 三维场景驱动
根据系统的总体设计,驱动程序需要实现漫游、交互操作、碰撞检测等功能,场景驱动程序以Unity 3d为平台,C#为支持语言对场景驱动进行设计。
5 碰撞检测
碰撞检测一般用包围盒技术,它是指定义在一个包围组节点模型外的不可见框架结构。在本系统中,主要是用来检测漫游是否超出边界,避免穿墙而过情况的发生,另外的一个应用是在视景系统中作为剔除视窗体外场景数据的参考模型。在剔除数据阶段,通过检测组节点的包围盒是否与当前视窗体发生交叉来确定是否需要遍历该组节点以下的节点,来大大减少场景中绘制的多边形数。
6 动画触发
本系统中在手动漫游中,需要进入大殿推门进入时将会触发该动画,此处采用DOF即Degrees Of Freedom 的缩写,也称为自由度技术在一些视景仿真系统中,需要实现实时互动,比如门或窗户的打开和闭合、阀门的开关等,例如,DOF 能够指定一扇门的旋转角度或者是一扇窗户打开的水平或直线距离,这样门或窗户就可以只停留在一定的框架内从而以符合逻辑的方式运动。
7 总结
本文尝试在虚拟现实技术的基础上来讨论三维漫游演示系统的构建方法。 中华傅山园漫游系统已经交付使用,目前运行情况良好。当然本系统还有很多地方可以进一步完善:
(1)在三维漫游系统中对物体阴影的实现。
(2)系统中对自然景观的动态模拟还比较简单,还须进一步优化自然景观的模拟算法,同时引入物理特性,以便取得更真实的模拟效果。
[1]李湘德,彭斌.虚拟现实技术发展综述[J].技术与创新管理,2004,25(6):10-14.
[2]郑坚.虚拟现实系统中的视景仿真研究[J].微机发展,2003,13(9):18-20.
[3]吴信才.地理信息系统设计与实现[M].北京:电子工业出版社,2002:1-165.
[4]孙家广,杨长贵.计算机图形学[M].北京.清华大学出版社,1995.
[5]彭群生,鲍虎军.计算机真实感图形的算法基础[M].北京:科学出版社,1999:221-226.
[6]J.Bowen Loftin.AerosPace applications of virtual environment technology[J].Computer GraPies,2000,30(4):33-35.