李博,宁涛
(大连交通大学 软件学院,辽宁 大连 116052)*
虚拟现实(Virtual Reality,简称VR)技术正在社会各领域得到广泛应用,虚拟校园是虚拟现实技术在数字化校园中的具体应用,它是利用计算机为用户提供模拟现实场景的虚拟操作环境,使人们对研究环境产生身临其境的感觉.虚拟现实技术最本质的特点是沉浸感(Immersion)、交互性(Interaction)和思维构想性(Imagination)[1-3].国内多所高校(天津大学、清华大学、北京航空航天大学等)进行了虚拟校园的建设,但是以提供单一浏览功能为主[4-7],本文实现的大连海事大学西山校区虚拟校园建设,不仅可以提供基本的浏览功能,还可以提供交互功能以获取更多信息.借助于Multigen-Creator场景建模软件和VC++开发平台下OpenGVS的虚拟校园漫游和查询系统基于这种背景和需求进行了开发.
虚拟校园导引系统结合虚拟现实和可视化技术,主要设计包括自主漫游和按既定线路自动漫游、查询定位、自动量算和楼宇机构介绍四个功能模块,其中查询模块主要根据用户输入的目的地自动生成导引路径和定位鸟瞰图,自动量算模块为用户提供位置坐标、目的地距离以及所需时间.系统开发总体分为场景三维建模和绘制、模型的驱动漫游、楼宇查询导引和介绍几部分,如图1所示.
图1 系统总体设计
数据准备主要包括数据收集和数据处理.对收集的原始数据,根据建设中对楼宇环境不同场景的要求,选择不同精度的图片进行数据处理.
(1)校园底图数据收集处理.从相关管理部门获取校园规划的CAD工程底图文件和航摄相片数据比例尺.利用AutoCAD对底图文件进行修改处理并导入到Multigen Creator中,为节省导入时间和文件所占空间,分离出需要使用的部分并将其保存为独立的flt文件;
(2)建模数据收集处理.建模数据包括校园楼宇的尺寸、比例以及外墙、甬道等的图片数据.这些数据可利用数码相机、摄像机通过静态拍照、动态摄像、扫描或航拍等手段采集;
(3)校内楼宇机构分布数据.使用数据库或者数据表将建筑数据与底图数据进行对应统一,作为漫游路线和生成路径的参照和基础;同时,将相应主要楼宇机构、道路导引等介绍信息保存为文本和影音格式文件.
当前主流的三维模型格式中,主要有max、3ds、flt、obj、dxf、dwg、dem.虚拟环境的建模工具有AutoCAD、3DSMax、Multigen Creator等软件工具.我们选择Creator工具,因为与前两种软件比较,Creator软件具有简单、直观、运行于实时环境中的特点,除了具有一个共同的用户接口,每种实现还具有一个适应特定平台的子系统;而且Creator建立的模型尺寸小,不占用过大内存,不会影响环境的实时性能.这种设计可以方便利用特定扩展工具将一个基本的建模程序改造成适合于某个特殊应用,从而能够完成图像数据量较大的虚拟空间环境构建.该软件另一个突出优点是其构造的场景数据库采用树状层次结构来组织和管理模型,可以方便地进行实体模型的组织和管理.
选择了建模工具后,开始进行模型的建立.模型主要分为甬道模型和楼宇模型.模型建立的精细度决定了三维场景漫游效果的逼真度,而伴随模型高精细度的是大量的时间消耗和高端的机器性能,因此我们在精细度和绘制速度间进行平衡,既保证一定的绘制精度,又保证绘制速度.
(1)甬道模型.甬道模型由OpenGVS的几何绘图命令来构建,其建模过程是用OpenGVS的几何元素构造每一小段道路,然后将所有的路段拼接起来构成完整的道路.如果将各个路段的长度取得足够小,则相对整条道路,各路段的长度就趋近于零,从而可认为每条路段即代表路线上的各个点.因此原本离散变化的视线方向也就可以满足视觉连续过程.
(2)楼宇模型.Creator用树状层次结构来组织和管理模型,方便进行实体模型的组织和管理.通过校园规划底图及全校航拍图来获得数字化地图数据.纹理数据对用来增加虚拟世界的真实感有重要的作用,可以弥补细节的不足.建模过程中按照校园地貌特性分布情况,对场景进行了区域分割.在各分割地带,所包括的特征场景按层次由高到低、由粗到细地完成模型的场景构造过程,如图2所示.整个过程分为几何建模、形象建模(也称物理建模)和视景生成3个过程.
图2 大连海事大学西山校区鸟瞰图
三维模型建立好后要进行纹理绘制(Rendering),纹理绘制能够增强模型的视觉效果和逼真度,绘制工作主要包括模型的材质和光照.本系统使用Photoshop软件对采集的图片进行编辑处理,使纹理符合模型不同色调要求,草地、甬道等的纹理则是对面对象重复贴图获得.在绘制过程中为避免浏览时出现像素闪烁现象,对纹理压盖进行了处理,绘制效果如图3所示.
图3 绘制后效果图
经过建立和绘制的模型还仅是静态的,无法达到漫游浏览和生成路径的目的.从漫游者的运行方式、起始位置、观察视角等几个方面进行参数设置,对模型进行自动或自主驱动,使漫游者在驱动的场景中产生沉浸感.
目前流行的实时场景引擎工具有 Vega、VTree、Vrmap和OSG等.本系统从需求和功能出发,选择了 VC++开发平台结合 OpenGVS.OpenGVS直接架构于OpenGL、Glide和Direct3D上,既封装了底层图形驱动函数,又保持了良好的可移植性.
导引系统主要包含模型驱动模块、速度调节模块和视线高度调节模块.
驱动模块是漫游系统的核心程序段,主要包括场景选择、自动自主控制和碰撞检测等部分.系统启动时,初始视点设置为校区正门与人视线同高平视位置,漫游者可通过输入设备自主改变视点位置和实现角度.自主漫游模式还提供了使用混合包围盒的碰撞检测功能.
考虑到不同漫游者由于年龄、身高和性别等生理差异,其行走速度也不同.本系统通过控制调节漫游的步长来达到区分行走速度的目的.解决方法为:初始化的步长(行走速度)设为正常人行走的步长,在程序中依照模型的比例设为0.5 cm,步长的调节单位为0.25 cm.用户可通过“+”和“-”功能键自主调节速度.
本系统通过调节照相机Y轴坐标实现模拟调节视线高度.解决方法为:初始化的视线高度设为屏幕中央(window_size.y/2),高度调节的单位为0.2 cm,通过“H”和“L”功能键来实现高、低不同方向的递变完成修改视线高度.
虚拟校园导引系统不仅提供漫游浏览功能,还提供按目的地自动生成漫游路径的导引功能和漫游者定位功能.
通过数学建模将校园不同机构抽象为多对多的关系数据库中的节点,则自动生成漫游路径问题便可转化为求目标节点的最短路径问题.首先用标记位置信息的节点表示待查询机构楼宇,用带权弧表示校内甬道(权值表示道路长度),并分别保存到不同数据表中.系统通过计算视点坐标值获取距离漫游者当前位置最近的节点信息.然后通过带权弧建立数据表中节点的一对一关系,将关系保存到独立数据表中.最后根据漫游者当前位置和目的地,运用Dijkstra算法实现按目的地自动生成漫游路径功能.
虽然漫游者在导引系统中能顺利到达目的地,但是要从整体对校园形成直观的认识还有一定的困难,甚至对行走过的路线还比较模糊.为了解决漫游系统的这一问题已经提出了许多解决方法.
比较有代表性的是:方法1、生成三维地图,通过让用户从空中向下以一定角度观看三维场景,来获得空间定位信息[8].方法2、通过增加一个通道作为二维地图通道,原来的主通道占据整个屏幕,二维地图通道作为子通道占据少部分屏幕.二维地图通道中,设置相机,预设光照和观察体,相机的镜头始终正对表示二维地图的模型平面[9].
方法1中当以一定角度观看三维场景,若正面有高大的物体,则会形成遮挡;方法2当漫游者行走于场景模型下方(如树冠、凉亭),则无法准确定位,而且由于这两种方法消耗资源偏大,会造成绘制时的帧数下降.
本文采用“画中画”二维地图简化法.具体方法为:①将场景模型投影到平面生成二维地图;②从相机类中获取世界坐标系中的水平坐标,在二维地图上以红色的圆点表示,这样用户可以掌握自己的行走轨迹和在校园中的相对位置.效果如图4所示.
图4 简化二维地图
本文综合使用 Multigen Creator建模和OpenGVS编程,完成了“虚拟校园导引系统”的开发.与已有技术相比较,本文在四方面使用了新方法:①使用的 OpenGVS可以更好地结合底层OpenGL函数和顶层接口,并提高了可移植性;②系统漫游过程使用了混合包围盒的碰撞检测方法,提高了检测的效率;③在完成漫游浏览功能基础上,使用求最短路经算法完成自动生成路径功能;④使用二维地图简化法进行鸟瞰定位避免漫游者“迷失”方向.通过系统用户测试表明本系统能够有效对漫游者进行导引,并提供方便直观的校园楼宇信息查询和定位功能.
[1]鲍虎军.虚拟现实技术概论[J].中国基础科学,2003,5(3):26-32.
[2]潘志庚,姜晓红,张明敏,等.分布式虚拟环境综述[J].软件学报,2000,11(4):35-41.
[3]宁涛,郭晨,张升文.用混合包围盒优化碰撞检测方法[J].计算机工程与应用,2011,47(1):5-7.
[4]郭晨,杨国勋,孙建波,等.船舶运动控制虚拟现实交互式仿真系统[J].系统仿真学报,2004,16(5):81-83.
[5]宁涛,梁旭.基于虚拟现实技术的校园导向标识系统研究[J].工程图学学报,2008,29(2):196-199.
[6]NING TAO,GUO CHEN,WANG LI JUAN.The shortest path optimization method using hybrid genetic algorithm[J].International Journal of Advancements in Computing Technology,2011,3(6):305-311.
[7]毕晓佳,苗放,叶成名.基于数字地球平台的三维虚拟数字校园建设[J].地理空间信息,2008,6(3):99-101.
[8]宁涛,霍利.纸面原型设计方法在虚拟仿真系统开发的应用[J].计算机工程与设计,2008,29(20):254-256.
[9]于海凤,邢桂芬,张凯.虚拟现实技术在视景仿真系统中的应用[J].计算机工程与设计,2006,27(6):1108-1110.