基于Creator/OSG的数字校园虚拟现实系统

2011-05-29 09:22吴光生陆后军
浙江交通职业技术学院学报 2011年1期
关键词:视点漫游纹理

吴光生,严 伟,陆后军

(上海海事大学物流工程学院,上海 200135)

0 引 言

数字校园是指数字信息化的校园,包括信息的获取、处理和应用。将获得的校园数据应用在三维模型中,在计算机系统中重现真实的校园,数字校园的内容包括校园设施的数字化、校园漫游智能化、可视化等主要方面,它可以对过去进行反演,对现实进行决策,对未来进行预测,对整个校园发展规划、校园管理都将发挥重大作用[1]。数字校园漫游系统完全采用了虚拟现实技术作为支撑。虚拟现实 (Virtual Reality,VR)是一种可以创建和体验虚拟环境的计算机系统,虚拟现实技术已应用在军事仿真、数字展馆、港口物流、交通桥梁、城市规划等方面。虚拟现实是集成了计算机图形学、计算机仿真技术、人工智能、传感技术、网络并行处理等技术的发展成果,是一种由计算机技术辅助生成的高技术模拟系统。

苌道方等[2]在数字校园漫游系统中提出了基于Vega的视点与场景的碰撞检测算法;陈勇等[3]是基于VRPsdk创建一个方便直观的信息查询导航系统,可以进行漫游;王富伟[4]提出了基于3d max和VRP-Builder平台实现了数字校园虚拟漫游系统。上述文献对于数字校园的研究与实现都是基于特定商业软件,存在后期信息处理量大、接口扩展困难、开发成本较高等缺点,OpenSceneGraph(简称:OSG)作为开源的渲染引擎已经成为虚拟现实系统开发的主流平台。从数字校园的功能需求分析出发,对数字校园所需三维模型进行构建与优化,在OSG平台下实现了特定需求的数字校园漫游系统的主体功能。

1 场景模型构建与优化

数字校园三维模型构建的完成需要四个过程:数据获取、数据处理、建立模型、优化模型。以清晰、简洁、逼真度为方向,采用层次结构方式对校园进行重建仿真模型 (校园三维模型层次结构划分如图1所示)。这种模型重建的数据结构可以合理的提高系统显示速度。Creator软件读取模型结构数据的方式为从上到下、从左到右,而尽量把视点远的地物结构数据放在数据库的左边;这样更能显示出层次感和立体感。校园三维模型构建分为三块:地形构建、建筑物构建、地物设施构建。

图1 校园三维模型层次结构

1.1 地形建模

地形数据和纹理信息是通过数字高程模型(DEM)和数字正射影像 (DOM)获得的。然后需要将地理信息系统中的DEM数据转化成DED格式数据,再用PolyTrans软件,通过设置参数转化为Creator的Openflight文件格式 (*.flt)。本文采用四叉树方法进行LOD的地形建模,先从整个完整的地形出发,再以递归方式把地形不断地分割成相等的四个部分,分割的层次越多,则得到的分辨率越高,但分割的层次不是越多越好,需要结合一个曲率度量的评价标准来判断。图2中一个正方形代表四叉树的一个节点,保存的信息有经纬度,中心点高度,边节点高度等。

图2 节点分割图

1.2 建筑物建模

建筑物模型分为精细化建模和粗糙化建模。精细化建模一般用在具有代表性要求高精度的建筑物,劣势是占据着大量的数据库资料和渲染时的内存。在数字校园中,采用三维激光扫描仪获得建筑物的相关数据,再通过粗糙化建模可以减少实时绘制的开销,从而加快系统运行的速度。粗糙化建模是构造LOD层次,对于建筑物的复杂造型主要是用纹理 (透明或者非透明)拼贴或简单造型来代表复杂造型。如图3所示在绘制建筑物楼梯的台阶时,一种是以每一层为对象绘制出阶梯,即为正方体的叠加。另一种是以台阶的侧面为对象进行拉升,这种方法简单且面片数量比前一种少40%。总体而言,粗糙化建模所使用的面片数目只有精细化建模的10%~20%。在建模或优化模型过程中,应该在高度逼真的情况下尽量使用少的面片数构建模型,从而得以优化。方法有四种:一是使用合并面工具,以减少文件大小;二是使用LOD菜单下的vsimplyfy插件,vsimplyfy自动多边形减少工具利用三角化算法优化模型;三是建模过程中及时删除多余的面片;四是对于复杂模型尽量使用纹理,这种效果十分逼真且简化,最能达到理想效果。

图3 阶梯模型简化

1.3 地物设施建模

地物设施包括:路标、路灯、电线杆、花草树木、围栏等。在数字校园漫游系统模型的构建过程中,存在大量几何形状相同的地物设施,只有位置、大小、方向不一样。如果对每个物体都进行建模,必然带来系统资源的大量浪费,影响系统的加载和运行速度。可以通过实例技术实现对地物设施的建模。原理是将相同的模型放在一份OpenFlight文件格式中,通过这份模型可以在地形中进行大量复制、平移、旋转和缩放得到系统中所需的地物设施,可以减少大量的数据库资源和内存空间。

校园的花草树木和围栏设施,应该采用Billboard(公告牌)技术构建模型,然后设置树木的透明纹理,将透明纹理贴在竖立的面片上,就可以完成树木模型的构建。该技术原理是以树木的正面始终围绕着观察者的视点旋转,实际是通过二维图像代替三维的实体模型。

1.4 模型整合

在地形模型文件中利用文件菜单下的Extenal Reference导入所有的地物,再处理建筑物与地面之间、设施与地面之间的融合,协调建筑物周围的绿化带。为达到理想的要求,需要求得地形中建筑物地基的几个关键的三维坐标,以输入数据进行导入,位置精确化后再实行无缝融合处理。

2 系统设计与驱动

2.1 系统结构

数字校园漫游系统是采用了Multigen Creator软件完成了整个校园模型的构建,以及利用OSG技术进行二次开发驱动显示数字校园的场景 (图4为系统结构)。

通过数字高程模型 (DEM)和数字正射影像(DOM)获得地形数据和纹理数据,通过三维激光扫描技术获取建筑物的建模相关数据;通过Poly-Trans软件转化为OpenFlight格式的数据结构文件。OpenFlight以几何层次结构的方式描述三维物体,这可以保证对物体的点、边、面进行控制。然后基于OSG技术,在Microsoft Visual Studio.NET2003平台下开发的一个基于MFC的演示窗口,实现数字校园漫游系统。

图4 系统结构图

2.2 功能设计

数字校园漫游系统以南通航运职业技术学院为研究平台,设计的功能满足了校园不同的漫游方式、环境特效和安全预防演练等,主要功能如下,如图5所示。

(1)自动漫游模块:该模块是系统设定了一条路线可以自动进行路径漫游,也可以在仿真系统人机交互过程中录制一条线路后自动漫游。

(2)交互漫游模块:允许用户手动调整观察视点,通过操作鼠标和键盘来控制漫游路径。系统具有开启、关闭碰撞检测功能,满足用户不同应用需求;

(3)视点切换模块:系统预设典型场景的固定视点,方便用户快速切换虚拟场景;

(4)特效背景模块:可以通过该模块添加关闭背景音乐,汽车驾驶行动,或添加雨水、阳光等环境天气特效,令漫游有更完美的视听效果。

(5)专题模块:数字校园的一个重要特征是信息的便捷使用,系统可根据特定需求定制专题模块,如校园路径搜索、突发事件应急决策、安全状况监控等。

(6)扩展接口模块:允许用户自建模型的导入与替换,便于随着地理环境的变化导致系统升级、更新。

2.3 驱动实现

OSG对场景的组织和管理采用了数据结构场景图,这样可以把各个场景及其属性组成一棵场景树;用于校园场景设计安排和管理,它以树形结构来表示一个场景制作的所有过程,每一个节点代表一个单元。

在数字校园漫游系统中设计的主要类是osg-Walk,主要用来解决校园的漫游功能。系统演示效果如图5。下面对这类进行简单阐述。

{……

boolkeyMovement(intflag); //左右移动

boolkeyGoBackMovement(int flag); //前后移动

Booleyeupdown(int flag) //仰俯变化

voidosgWalk:collisionDetect(constVec3&delta)//碰撞检测

……

Double velocity;

Double height;

……};

图5 数字校园漫游系统

3 关键技术

3.1 纹理映射

在数字校园漫游系统中,为了使得场景真实再现,采用的是纹理拼贴的方式。通过对纹理信息的获取,处理,拼贴,实现三维模型的真实再现。在Creator软件中纹理拼贴的过程中没有要求,但是OSG在实景驱动时对纹理有着严格的要求,那些不满足要求的均不能正确显示。纹理应满足的条件如下:

(1)纹理格式。将应用的纹理文件转换成OSG中支持的文件格式:RGB、RGBA、PNG、JPG、INT、INTA、BMP;

(2)纹理像素大小。将纹理的大小修改为OSG中所规定的长度—2的n次方;

(3)纹理的名称。保存纹理时,由于中文名称的纹理不被显示,应使用英文字母命名;

(4)带a的纹理。如果在RGB文件中包含了a值,则文件的后缀名必须是RGBA才能在OSG中显示出来。

3.2 场景图管理

OSG是用于管理场景的软件。在实现动态的集合体更新、拣选、排序和高效率渲染,场景图形重点需要把握三种遍历:①更新:更新遍历是指允许程序修改场景图形,以实现动态场景。更新操作由程序或者场景图形中节点对应的回调函数完成。数字校园漫游系统,可以通过更新遍历改变场景的视点位置。②拣选:在拣选遍历中,主要检查场景中所有节点的包围盒。如果叶节点在视口内,场景图形库将在最终的渲染列表中添加该节点的一个应用。③绘制:在渲染遍历中,场景图形将遍历由拣选遍历过程生成的几何体列表,并调用底层API,实现场景渲染。

3.3 碰撞检测

碰撞检测的基本任务是确定两个或多个物体彼此之间是否发生接触或穿透。在数字校园漫游系统中,主要解决校园漫游视点不与场景的物体发生接触即可。本系统中采用了基于BUMP的线段探测的碰撞检测算法。基本思路是当检测到视点和场景发生碰撞后,改变视点运动方向,使视点运动方向和碰撞到的场景面平行。

OSG提供了osg::LineSegmen,一个包含起点和终点的线段类;osgUtil::IntersectVisiotr是一个接受线段的类,用于判别与节点的交集,osgUtil::IntersectVisitor::HitList可以得到相交点的具体位置,从而计算出视点和场景之间的距离。

3.4 系统优化

为了增强友好的用户体验,考虑从三个方面进行优化:一是缩短系统的加载速度;二是尽量提高数字校园地图的分辨率;三是运行的响应速度保持流畅。这三个方面是相互制约的关系。首先对校园的所有模型按照层次关系型结构进行存放,对各个模型多余的面片进行删除,在一个平面上的三角面进行合并,减少模型的存放空间。这些都有利于系统的加载速度。再次纹理的处理至关重要,图片的分辨率既不能太高,也不能太低;这直接会影响用户对三维地图观看的视觉感受,经过多次试验,在三维场景中,能在正对着纹理一米以上的距离清晰看见即可,这保证了在不影响运行响应速度的同时,又能让用户感受到三维数字校园地图的高清晰度。最后,在制作特效背景时,应用了粒子系统使得校园环境更加逼真。

4 结 语

虚拟现实技术可以很好地对真实校园进行模拟,让用户通过漫游系统产生身临其境的感觉。本文通过了Creator软件构建了校园的三维模型,对OSG的二次开发实现了数字校园漫游系统。该系统主要设计了自动漫游模块、交互漫游模块、视点切换模块、特效背景模块、专题模块、扩展接口模块。此外,也可以按照未来的校园规划方案,在现有的系统基础上通过扩展接口模块做出相应改变,以得到对该规划方案的预览效果,可以为校园未来发展规划提供有价值的参考。以便使数字校园最初的需求功能得以实现。

在数字校园漫游系统实现之后,将数字展览[5]引入漫游系统成为了下一步的工作。将相关的信息加入系统,并随着漫游过程展现,将会达到更好的展示效果。

[1]黄莹莹,彭敏俊,许岷.基于虚拟现实的数字校园漫游系统的设计与实现[J].应用科技,2005,32(5):40-42.

[2]苌道方,宓为建.基于Vega的虚拟现实系统漫游引擎[J].计算机辅助工程,2006,15(2):31-33.

[3]陈勇,马纯永,白生祥,等.基于VRP sdk的虚拟海大校园导航系统[J].中国海洋大学学报:自然科学版,2007,37(3):481-484.

[4]王富伟.基于3dmax和VRP-Builder平台数字校园虚拟漫游系统的设计与实现[J].中国科技信息,2009,(24):95-96.

[5]陆后军,苌道方,宓为建.集装箱码头三维仿真组件平台[J].计算机辅助工程.2010,19(1):84-87.

猜你喜欢
视点漫游纹理
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
霹雳漫游堂
TEXTURE ON TEXTURE质地上的纹理
NASA漫游记
环境视点
消除凹凸纹理有妙招!
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点
边走边看:漫游海底 梦想成真