虚拟校园三维场景构建与漫游导航的实现
2016-10-31许爱军
许爱军
(广州铁路职业技术学院,广州 510430)
虚拟校园三维场景构建与漫游导航的实现
许爱军
(广州铁路职业技术学院,广州510430)
为集中展示校园风貌和文化氛围,基于Creator和Vega平台实现了自动导航寻径的虚拟校园漫游系统;结合校园建筑特点,引入面向对象思想并应用有向无环树状图组织场景数据,实现了对虚拟场景的层次化管理;在建模阶段,利用不同精度的纹理贴图生成不同精度的模型,给出了支持LOD的快速建模方法;在漫游导航中,通过鼠标拾取实时显示虚拟物体的属性信息,运用方向优先的Dijkstra算法查找最短路径并实现漫游导航功能;在普通PC上测试,无论是单个模型的渲染效率还是系统的整体性能,场景的逼真度和浏览的顺畅性都较为理想,体现出人机工程顺畅和自然的特征。
虚拟校园;虚拟漫游;虚拟寻径;三维虚拟场景构建
0 引言
虚拟校园是以虚拟现实技术、空间地理信息技术、计算机图形学、计算机多媒体技术等为基础,以真实空间地理环境为原型,采用三维建模技术重现的真实校园场景[1]。虚拟校园建设的目的在于集中展示校园风貌(或提前规划待建校区),便于用户更好地了解校园环境和文化氛围,从而提升学校的影响力和知名度。
作为规模较大的一种三维虚拟场景,虚拟校园的快速绘制和优化浏览一直是可视化仿真领域研究的重点。针对三维建筑模型,龙勇[2]对三维实体模型的建模流程进行了归纳,并演绎出具有一般意义的三维实体建模策略集;栾悉道[3]对三维数据获取与建模方法进行了介绍,重点对激光扫描系统、基于图像建模技术进行说明与对比。针对地形模型,吴晓彦[4]提出基于K-means聚类和动态LOD的三维地形建模方法;付延强[5]提出基于区域特征的距离加权的三维地形建模方法等。本文主要采用实时仿真建模软件MultiGen Creator建模,提出并实现了支持LOD的快速建模方法。
虚拟漫游是指用户在三维引擎支持下浏览虚拟校园,通过输入设备(如:鼠标、键盘)控制浏览的速度、视角和方向,并能利用导航和交互,实现清晰、有选择性和个性化的浏览[6]。其中,寻径是虚拟漫游系统要重点解决的问题。因为一个不支持寻径的虚拟漫游系统,极易让浏览者“迷失”在三维虚拟场景中。针对寻径问题,石敏[7]提出了基于泰森多边形的导航路网优化方法;张宏[8]在VC的MFC框架下对Vega/lynx进行二次开发,实现可选择路径的漫游;王艳安[9]采用辅助导航地图的方法满足漫游寻径的需要等。
基于上述背景,本文在人机工程学理论指导下,融入方向优先的Dijkstra算法查找最短路径并实现漫游导航功能,利用鼠标拾取原理实时显示虚拟物体的属性信息,同时支持多种导航方式和声音特效,体现了人机工程的便捷性、个性化特性。
1 虚拟校园总体设计
1.1系统架构
虚拟校园漫游系统由应用层、功能层和数据层组成。应用层是人机交互的入口,系统提供的虚拟漫游、虚拟物体信息显示、地点查询与寻径等应用在这里呈现;功能层是为实现上层应用所需要进行的相关操作,包括从底层收集数据、进行碰撞检测和烘焙渲染等;数据层提供虚拟校园的底层数据,包括建筑模型、纹理与材质、路径信息、建筑介绍资料,以及以声音为主的多媒体数据信息等。系统架构如图1所示。
图1 虚拟校园漫游系统架构
1.2场景的组织与管理
虚拟校园包含大量的建筑实体和环境物体,空间结构较为复杂,模型种类丰富。如果采用传统的文件、2DGIS 附加图像,或者关系数据库的方式来管理这些模型,则很难表达出模型间的层次结构和相互间的复杂关系。鉴于此,本文采用面向对象的有向无环树状场景图[10]对模型数据进行管理。
场景图是一种倒置的有向无环树状图,通过节点将所描述实体对象的从属和逻辑关系清晰地表达出来。根据场景图原理,本系统按“大场景-子块(子场景)-单个造型”的层次结构组织模型数据。首先把整个校园场景分割成教学区、办公区、生活区、运动区和宿舍区5大区域,再把每个区域逐渐分解为天空、道路、建筑等若干个子场景,然后继续把每个子场景继续分解到单个造型单元,整个场景组织为一个树状结构。
结合面向对象的思想,本系统把组成校园场景的对象类分为结构描述类(如:形体节点、组合节点等)、造型描述类(如:表面节点、几何节点)和其它辅助类,这三类节点分别继承对应的基类。基于场景图的校园场景组织如图2所示。
图2 校园场景组织
有向无环树状场景图的分层结构既能体现模型的固有空间特性,又能实现对大型虚拟场景的层次化管理,在漫游时能动态提取进入视点范围的场景,从而提高渲染效率。目前,MultiGen Creator软件就是采用这种数据结构形式,能支持本方法的实现。
2 虚拟校园三维模型的构建
建立模型是创建虚拟环境、实现虚拟漫游的基础。建模前,先要收集目标区域的平面图(各要素的平面位置控制)、立面图(建筑侧面的形态控制)、效果图(整体布局的视觉效果)及相关说明信息等,以此为基础进行建模。
2.1纹理与材质的获取
获取纹理和材质的主要方式是实地拍摄,素材包括:墙壁、道路交通、门、窗、石材、玻璃、天空、Billboards等。由于受光线和拍摄角度的限制,采集的纹理照片往往与真实物体有较大差别,通常要用图片处理软件(如:Photoshop)进行旋转、透视、扭曲、裁切、拼接,以及色相饱和度等处理,生成正射的纹理照片。图3是纹理照片透视处理前后的对比情况。
本系统按照“纹理分类大类-小类-序号-分辨率等级”的规则对纹理进行编码管理。将每张纹理图片同时生成模糊、普通和清晰3种版本,分别存入分辨率不同3个的纹理材质子库中,为后期LOD(Levels of Detail)优化调度做好准备。
图3 纹理照片透视处理
2.2地表建筑模型的建立
2.2.1使用纹理贴图
场景中过多的模型细节会严重降低渲染效率。合理使用纹理和材质来替代三维模型的几何细节,既能减少建模的工作量,也不会过分降低模型的逼真度,不失为一种高效的建模策略。
对室外楼宇建筑,先用MultiGen Creator建立简单几何模型,然后对各个面拼接纹理来建立模型。对室内物体,先建立物体外围轮廓,然后采用外扩、挤出、拉伸及布尔运算等操作生成简单几何形体的组合,经过贴图后完成模型的建立。
2.2.2支持LOD的模型生成方法
由于纹理有模糊、普通和清晰3个不同版本,在使用贴图时,同样也会生成精度不同的3个物体模型。本系统采用“模型大类+小类+层次细节等级+颜色”的编码原则对模型进行编码,分别存入不同精度的模型库中。这样,单个物体模型就可以按照LOD的层级来组织几何和纹理数据,如图4所示。
图4 支持LOD的单个建筑模型
使用图4所示的建模方法,就可以按照视点与物体之间的距离调用精细程度不同的模型,当视点距离较远时调用粗糙的模型,当视点距离较近时调用精细的模型,很好地支持LOD的实现,从而加快虚拟场景的渲染速度。
2.3地形模型的建立
2.3.1地形数据的获取
建立三维地形模型需要用到数字高程模型(Digital Elevation Model,简称DEM)数据和正射影像。DEM是用来描述地形表面起伏特征的实体地面模型,可以采用工程测量方法(先利用传统测角、量边方法进行碎步测量,然后导入数字测图软件生成)[11]、获取免费的数字高程模型(利用google earth软件生成或者从高程数据网站下载)等生成。
由于校园地势较为平缓,本系统采用工程测量方法,将碎步点数据导入广州南方测绘公司的CASS测图软件,生成等高数据。先依据DEM数据构造多边形,经过几何变换(旋转、平移、缩放等)、投影变换、视点变换和消隐处理后,再利用纹理映射技术将前期处理的地面正射影像与DEM融合,建立起地表模型。需要注意的是,为了使地形和建筑物连成一个整体,需要将多边形内的网格点高程置平,把建筑物的底部边界作为限定边插入到DEM地形模型中,同时把建筑物底部的三角形做好标记便于后期进行空间分析。
2.3.2地形模型的优化
对于地形模型来说,DEM格网越密,模拟的地形越精确,但地形数据越大,场景载入速度就越慢。格网越疏,地形数据越小,场景载入速度越快,但地形越粗糙。所以DEM格网的行数和列数要根据虚拟场景的实际和运行终端的性能来决定。基于Quadtree的LOD算法[12]常采用四叉树分割方法进行地形绘制,DEM数据行列的取样数目必须满足(2n+1)×(2n+1)要求。所以,对地势平坦的虚拟校园Grid模型,系统采用513×513的格网,保证视觉感官的顺畅浏览,数据文件也不会太大。
2.4环境特殊模型的建立
虚拟校园还存在一些不规则的特殊物体,如树木、路灯、天空等,如果对这些物体建模,耗费的工作量和产生的数据量都很大。对这些物体,本系统采用透明和不透明单面技术进行处理。
透明单面主要用于场景中不规则物体(如:树木、花草、路灯、路牌、栅栏等)的建模,这些物体的共同特征是模型复杂但对细节要求不高。本系统的解决办法是,先用Photoshop对图片素材进行透明处理(用魔术棒工具选中素材以外的区域,删除不需要的背景,如图5所示),存为png格式,然后将这些png格式图片导入MultiGen Creator,经过转换生成rgba格式的文件,最后采用透明纹理映射技术完成透明单面的构造。
图5 透明单片构造前的素材处理
不透明单面的典型应用是天空(晴天、多云、多雾等)和远景(如海洋、山脉等),这些环境的特征是视点远、只需呈现效果、无细节要求。本系统采用天空圆顶(Sky Dome)方案[13]对天空进行模拟,实现方法是:在虚拟场景上方加盖一个多边形顶盖,在多边形上映射晴天、多云、多雾等天气效果纹理。这样,当视点在这个由地面、顶盖、边界闭合圈组成的空间盒内移动时,就会有由天空、远景产生的纵深感。
3 漫游导航的关键技术
人机工程学[14]是一门涉及生理学、心理学等多学科的交叉科学,以研究“人-机器-环境”三者之间的协调为核心。根据人机工程学理论,虚拟校园除了要为用户提供真实空间感之外,还要提供查询某个对象、指引用户到达某个地点,以及具有行走感的交互漫游等功能。
3.1虚拟对象拾取与信息显示
虚拟对象拾取是指在漫游中,通过鼠标单击虚拟对象的某个部位就能选中这个虚拟物体。这个看似简单的功能,实现过程还较为复杂,涉及到二维屏幕坐标到三维空间坐标的转换,以及采用空间包围盒方法判断解析到的三维坐标属于哪个虚拟对象的内部,包含这个三维坐标的虚拟对象就被选中[15]。这个过程实际是通过底层图形库OpenGL来完成的。本系统采用Vega的Callback回调函数调用OpenGL命令,从而实现虚拟对象的拾取。
虚拟对象拾取后,就能获得这个对象的唯一关键识别标识OID,根据OID值搜索属性数据库,从而找到该虚拟对象的属性值并显示出来。
3.2虚拟对象查询与寻径导航
虚拟对象查询是指在漫游中,用户输入需要前往的地点(通常为建筑的名字)后,系统为用户找到该建筑。虚拟寻径要以虚拟对象查询为基础,当找到目标建筑后,系统生成一条从当前位置到目标位置的导航路径,引导用户进行浏览,从而实现虚拟寻径。
实现虚拟寻径需要具备2个前提:1)在构建虚拟场景时,要将各个虚拟对象的正面入口坐标作为该对象的三维坐标,存储到属性库中;2)依照虚拟对象的三维坐标,分析虚拟对象之间的拓扑关系,进而构建起路网关系图。
3.2.1路网关系图的建立
在建立路网关系时,需要考虑是否“穿越”建筑物的情况。因为,根据三维坐标计算两个虚拟对象的路径长度时,可能出现“从某个建筑物中间穿过”的情况,这与实际情况不符。为此,本系统采用添加标记的方式来解决。当检测到 “穿越”情况发生后,则在“被穿越”建筑的外围左右两侧分别添加一个标记点,分别计算从起点到这个标记之间的距离,以及从这个标记到终点之间的距离,比较这两端距离之和,较短距离所在的标记予以保留(另一个标记剔除),同时记录这个标记的坐标和新增的2条路径信息。当所有虚拟对象都遍历完成,就建立起本系统的路网关系图。
3.2.2基于改进Dijkstra算法的虚拟寻径
由上可知,路网关系图是由大量多边形组成的拓扑结构图,图中的节点由建筑对象和添加的标记点组成,节点间的弧长代表建筑之间或标记点到建筑之间的距离。虚拟寻径就是要在这些多边形中找到一条最短的路径作为导航路线。
寻找最短路径的著名算法是Dijkstra算法,但由于传统Dijkstra算法需要逐一搜索全部节点,效率较低,本系统采用文献[16]提到的改进Dijkstra算法来寻找最短路径。改进的依据是:漫游导航路径的大体方向,应该与起始节点到目标节点连线的方向基本一致。这样,在选择下一个节点时,与起始节点连线方向更接近的节点被选中的可能性更大,从而缩小了节点的搜索范围,实现以方向优先的搜索策略。
融入方向优先的Dijkstra算法后,虚拟寻径的具体实现过程如下:
Step1:将用户选择的虚拟对象名称作为查询条件,生成SQL语句,从属性数据库匹配属性值;
Step2:找到虚拟对象后,提取该对象的OID值;
Step3:搜索空间对象ID管理器,找到该对象的三维坐标,即为目标点位置;
Step4:查找与当前用户替身最近的空间对象(可能不在视线范围),将该对象的坐标位置作为起始位置;
Step5:在路网关系图上,运用改进的Dijkstra算法计算从起始位置到目标点位置之间的最短路径,记录路径上的每个节点;
Step6:将用户当前位置点作为第1个节点,最短路径的起始节点作为第2个节点,目标位置点作为末端节点,建立起从当前位置到目标位置之间的导航路径。
3.3交互漫游与声音特效
交互漫游是人-机结合的核心,用户通过鼠标和键盘控制漫游路径,能在虚拟校园中自由浏览。本系统提供了步行和飞行两种漫游模式,每种模式都具备碰撞检测及响应的功能。
为了体现人机工程自然、舒适的特征,本系统在漫游中增加了声音特效。比如:在步行漫游时,发出移动的脚步声;漫游到校园后山时,发出鸟叫声;单击校门打开时,发出开门的“吱吱”声等。
4 系统实现与性能分析
基于上述描述方法与关键技术,本文基于Creator和Vega平台,设计并实现了虚拟校园漫游导航系统。
4.1实现效果
登录系统后,用户可以选择步行或飞行漫游模式,并能控制漫游的方向(前、后、左、右),如如图6、图7所示。在漫游中,用户如果想了解某个对象的详细信息,只要单击这个物体,就会出现信息显示框,如图8所示。当用户点击“虚拟寻径”下拉菜单后,弹出选择目的地的提示框,用户选择目的地后,系统自动为用户导航到该建筑前方,如图9所示。
图6 步行漫游模式
图7 飞行漫游模式
图8 虚拟物体信息显示
图9 虚拟寻径效果
4.2性能分析
为了测试单个模型渲染的效率和本系统整体运行性能,本文分别对不同复杂度(以顶点数和三角面数衡量)的模型渲染和系统运行帧速进行测试。
测试环境是:CPU 3.2 GHz双核,内存4 GB,显卡NVIDIA GeForce GTS 960,硬盘1 TB。测试情况如表1和图10所示。
表1 单个模型渲染性能
从表1可以看出,当单个模型的三角面数低于6 000,且所贴纹理不超过25 M时,模型的渲染速度接近30帧/秒,可以达到模型顺畅流畅的需求。同时,当单个模型的三角面数高于15 000,且所贴纹理超过70 M时,模型渲染效率非常低。
图10 系统运行帧速率
从图10可以看出,系统在初始运行的60秒时间内,场景文件载入时间约为8秒,最大帧速为76帧/秒,最小帧速为28帧/秒,系统运行平均帧速为53帧/秒。从测试情况看,系统运行的顺畅程度是较为理想的。
5 结束语
本文采用Creator和Vega平台,设计并实现了自动寻径的交互式虚拟漫游系统。提出了系统的三层体系架构,采用面向对象的有向无环树状场景图组织虚拟场景,通过构建多分辨率场景模型,给出了支持LOD的快速建模方法,利用鼠标拾取原理实时显示虚拟物体的属性信息,融入方向优先的Dijkstra算法实现漫游导航功能。测试结果显示,系统的逼真度和顺畅性都较为理想,并同时支持多种导航方式和声音特效,体现了人机工程的便捷性、个性化特性。
为了进一步提升人机工程自然、舒适、高效的特性,提升漫游系统的沉浸感,还需要在地形模型的优化、人物角色的添加,以及移动的汽车、飘动的旗帜、过往的行人等动态模型的构建等方面作进一步研究,这也是今后努力的方向。
[1] 许爱军,张文金,易丹.基于VRML的虚拟现实技术及应用[J].计算机与数字工程,2009(04):186-189.
[2] 龙勇,袁静,康凤举.可视化仿真中三维建模策略研究[J].系统仿真学报,2011,23(12): 2682-2687
[3] 栾悉道,应龙,谢毓湘.三维建模技术研究进展[J].计算机科学,2008(02):208-210.
[4] 吴晓彦,顾韵华,张俊勇,等.基于聚类和动态LOD的三维地形建模方法[J].2015(02):469-475.
[5] 付延强,韩慧健.基于区域特征距离加权的三维地形建模方法[J].计算机应用,2012(12):3377-3380.[6] 许爱军,张文金,黄正午.支持协同工作的VRML网络虚拟现实系统[J].计算机仿真,2009(11):287-290.
[7] 石敏,王俊铮,魏家辉.真实感三维虚拟场景构建与漫游方法[J].系统仿真学报,2014(09):1969-1974.
[8] 张宏,宋萃娥.可视化及漫游技术的研究与实现[J].系统仿真学报,2011(12):2701-2703,2708.
[9] 王艳安,曾俊峰,安运华.长江大学校园虚拟漫游系统设计[J].湖北农业科学,2010(09):2237-2240.
[10] 王源,刘建永,曾京.大规模场景虚拟漫游系统设计与实现[J].工程图学学报,2010(05):107-111.
[11] 周博飞,李绪华,张学之.3维城市模型建模方法分类与建模流程探讨[J].测绘与空间地理信息,2012(06):138-143.
[12] 李钦,戴树岭,赵永嘉,等.分块LOD大规模地形实时渲染算法[J].计算机辅助设计与图形学学报,2013(05):708-713.
[13] 雷励星,范贤德,徐振中.面向飞行模拟的大气效果实时绘制技术[J].清华大学学报(自然科学版),2009(07):1019-1022.
[14] 孙立博,刘艳,孙济洲,等.面向人机工程学测试的虚拟手仿真模型[J].计算机工程,2009(10):10-12.
[15] 张勇.虚拟实验室导览系统的关键技术研究[J].现代教育技术,2009(01):129-132.
[16] 董俊,黄传河.改进 Dijkstra算法在GIS导航应用中最短路径搜索研究[J].计算机科学,2012(10):245-247-257.
Realization of 3D Scene Construction and Navigation in Virtual Campus
Xu Aijun
(Guangzhou Railway Polytechnic,Guangzhou510430,China)
In order to show the campus landscape and cultural atmosphere,this paper designs virtual campus roaming system based on Creator and Vega platform. This paper introduces the object oriented thought organization scene data combining with the characteristics of campus buildings,and realized the hierarchical management of virtual scene. In the modeling stage,the system uses different accuracy of texture mapping to generate different precision model,given fast modeling method for supporting LOD. In the navigation,the system can display the attribute information of the virtual object by clicking mouse,and find the shortest path by using the Dijkstra algorithm. By testing on PC,the scene fidelity and view fluency is ideal no matter in rendering efficiency or overall system efficiency.
virtual campus; virtual roaming; virtual path; 3D virtual scene construction
1671-4598(2016)04-0210-04DOI:10.16526/j.cnki.11-4762/tp.2016.04.061
TP391.9
A
2015-10-25;
2015-11-18。
广东省科技计划项目(2015A030401005);广东省教育科学“十二五”规划2014年度教育信息技术研究项目(14JXN018)。
许爱军(1978-),男,湖南岳阳人,研究生,副教授,主要从事计算机网络与数据管理系统、虚拟现实技术方向的研究。