安徽师范大学三维虚拟校园系统建设研究

2012-09-12 01:00吴庆双
重庆高教研究 2012年1期
关键词:安徽师范大学漫游插件

吴庆双,王 楠

(1.安徽师范大学国土资源与旅游学院,安徽 芜湖 241000;2.安徽自然灾害过程与防控研究省级实验室,安徽 芜湖 241000;3.武汉大学遥感信息工程学院,湖北 武汉 430079)

数字校园是数字城市的重要组成部分,随着社会信息化建设步伐的加快,很多学校建立起了各自的校园地理信息系统(GIS),在学校的信息化管理中发挥了一定的作用.但这些系统大都是基于二维的,缺少高程信息,其功能虽然完善,但不能直观地表达地物[1].随着虚拟地理环境概念和技术的提出,虚拟现实和三维GIS技术越来越广泛地应用于校园地理信息系统建设中.三维虚拟校园系统可以为数字校园提供一个三维平台,能生动地展现真实的校园景观[2],实现与用户的动态交互,从而能让用户对学校的资源和布局进行交互式可视化浏览和查询,具有很好的对外展示作用和实用价值[3].建设三维虚拟校园系统己成为数字校园建设的新热点,具有重要的理论和现实意义.

本文结合安徽师范大学三维虚拟校园建设的实际需求,分析三维虚拟校园建设的主要内容和系统的总体架构,探讨校园三维建模的技术流程和优化方法,并研究系统实现的关键技术.根据本文所提出的设计方案和技术路线,制作了安徽师范大学花津校区三维校园模型,并基于此模型实现了安徽师范大学三维虚拟校园系统.

1 建设内容和总体架构

1.1 建设内容

三维虚拟校园的建设主要包含两个方面的工作:一是校园三维场景的建模.即根据校园二维平面图、地形图、高程数据和纹理贴图等数据源,利用计算机三维建模软件,按实际的尺寸构建三维校园场景模型[4];二是虚拟校园系统的设计与开发.即基于校园三维场景模型,根据三维虚拟校园系统的实际需求,设计系统的总体架构、功能模块和程序接口,并选择合适的平台编程实现.

1.2 总体架构

针对三维虚拟校园模型数据量大、图形化操作多的特点,虚拟校园系统采用客户机/服务器模式,在服务器端,使用Oracl数据库统一存储三维校园数据,在客户端,通过系统的数据连接模块访问服务器端中的数据,从而实现三维校园数据的集中管理和分布式应用.整个系统从逻辑上可划分为数据层、应用服务层和用户表现层等3个层次,各层次之间相互独立,便于灵活扩展.其总体结构如图1所示.

图1 三维虚拟校园系统总体架构图

数据层即在底层基于Oracle数据库软件建立的三维校园数据库,它按数据的类型和用途可分为校园模型库、校园属性库和系统维护库等3个子数据库.其中,校园模型库主要存储校园的三维场景模型数据、地形图数据、实景照片等信息,主要用于校园场景的三维显示,是整个三维虚拟校园系统的图形显示基础.校园属性库主要存储学校简介、学院简介、专业简介、办公楼简介、景点简介等校园相关信息,主要用于相关的属性查询.系统维护数据库主要存储系统的用户信息、权限信息、系统参数、操作日志等与系统自身相关的信息,主要用于系统的设置、运行、维护和管理.

应用服务层为系统的中间层,为构成系统的各个应用功能模块,主要包括三维文件、三维浏览、图层控制、三维查询、动画录制、场景设置、二三维交互、系统维护和数据库存取等模块.它们是在Visual Studio2008环境下用C++语言,采用插件式技术,基于OpenGL类库和.NET类库开发而成,其中涉及到三维图形的模块基于OpenGL类库开发,其它通用功能模块基于.NET类库开发.各个功能模块相对独立,可相互调用,灵活组合,共同构成三维虚拟校园系统.

用户表现层是系统架构的最顶层,为用户提供各种应用工作的平台.本系统的用户可分为一般用户和系统管理员用户两类,对于不同类别的用户,赋予不同的功能权限.一般用户主要对系统进行浏览和查询,可以使用三维浏览、图层控制、三维查询、动画录制、场景设置等模块,但没有系统维护模块的使用权限,不能对系统的功能权限和数据进行设置和维护.系统管理员主要对系统用户、功能和数据等进行管理和维护,不仅具有一般用户的所有权限,还能使用系统维护模块,能对用户的功能权限进行设置和对数据库进行更新、维护和备份等工作.

2 校园三维建模

校园三维场景模型是三维虚拟校园系统的数据基础,其质量好坏直接影响到场景的逼真度和系统的运行效率.综合考虑各三维建模软件的性能和校园三维建模的特点,我们采用3DMAX软件进行校园三维场景的构建.3DMAX是一款功能强大的三维模型制作与渲染软件,它的操作虽然相对复杂,但制作出来的三维模型场景细腻、真实感强,特别适合学校这种小区域的精细建模.3DMAX与AutoCAD都是AutoDesk公司的产品,它们二者之间的坐标系能精确拟合,数据能够相互正确快速地转换[5],由于 AutoCAD格式的校园施工设计图是校园三维建模的主要数据源,使用3DMAX进行三维建模可以实现与AutoCAD格式的校园建模数据源的无缝融合,从而准确快速地建立起校园三维场景模型.

2.1 建模数据源

以安徽师范大学花津校区为建模研究区域,主要数据源包括校园二维平面图、校园遥感地形图、建筑物高程数据、实景照片等.其中,校园二维平面图主要采用校区规划设计时的CAD施工设计图,如图2(a)所示,它是校园三维建模的主要数据源;校园遥感地形图来源于Google Earth上的卫星影像,如图2(b)所示,可以作为校园三维场景的地形底图;建筑物高程数据采用GPS设备采集得到,主要用于建筑物三维建模时的高程拉升;实景照片采用数码相机拍摄于校区内,主要作为建筑物、绿地、道路等校园三维模型的纹理贴图.

2.2 3DMAX里的校园三维建模

校园三维建模的对象主要可分为三类:建筑物等面状要素,道路、河流等线状要素,树木、路灯、指示牌等点状要素.其中,建筑物是校园三维建模的主体,可以把校园CAD施工设计图中的各类对象导入到3DMAX软件里进行三维建模,以高程数据对它们进行拉升,并贴上相应的纹理图片,整个建模流程如图3所示.

图2 安徽师范大学花津校区三维建模数据源

图3 基于3DMAX的校园三维建模流程

根据本文所提出的校园三维建模方法,所得到的部分安徽师范大学花津校区三维场景模型如图4所示.

图4 安徽师范大学花津校区三维虚拟校园场景

3 关键技术研究

3.1 基于OpenGL的三维校园模型加载、显示与漫游

OpenGL是绘制高真实感三维图形、实现交互式视景仿真和虚拟现实的高性能软件开发包,它集成了图形建模、颜色模式设置、光照和材质设置、纹理映射、位图显示、图像增强、图形变换和双缓存动画等复杂的图形算法[6],使用简便、效率高,是一种通用的三维图像开发标准,以它为基础开发的应用程序可以十分方便地在各种平台间移植.在3DMAX中创建的校园三维模型可通过OpenGL编程实现数据的加载,并利用OpenGL渲染场景,设计交互动作,从而高效地实现系统中的三维漫游、场景输出和视点控制等三维功能.

基于OpenGL导入3DMAX三维模型的过程分为两部分,首先将3DMAX格式文件中的内容读入OpenGL环境中,然后将读入的模型数据重新整理,并生成处理对象列表,在OpenGL中重新绘制并显示出来.

由于三维场景的数据量比较大,场景的实现动态显示是一件费时的事.为解决一定精度下大范围校园环境的实时仿真问题,采用将地形数据分块的策略,即将参与显示的整块地形细分成一定大小的等大数据块.当进行三维校园漫游时,所有校园三维场景模型并不全部参与显示,而是根据视点所在位置,每次只取视场范围内的数据块进行交互式实时渲染.同时根据视点的远近,场景显示的细节详细程度也动态变化,当视点较远时,显示的视场范围较大但场景细节信息越少,当视点较近时,显示的视场范围较小但场景细节信息较丰富.

在三维漫游的动态渲染过程中,随着视点的移动,当前内存数据页中的三维场景数据需要不断地更新,而从硬盘中读入新的三维数据并绘制渲染会消耗一定的时间,这会带来视觉上的“延迟”现象.OpenGL所特有的双缓存机制为解决这个问题提供了有力的技术保障.在双缓存机制中,对于所创建的三维场景实际上可以获得两种存储区域:前台缓冲区和后台缓冲区.前台缓冲区对应于系统运行时的三维显示,存储当前视场范围内显示的三维场景信息.后台缓冲区则对应于三维数据库,在幕后进行图形绘制和渲染工作,从而减少从硬盘读取数据并绘制的时间[7].采用多线程技术解决数据页缓冲区的数据更新问题,通过判断当前视点位置与数据页几何中心之间的平面位置关系,进行动态数据页的实时更新,从而实现大范围三维校园场景的任意实时漫游.

3.2 二三维动态交互

三维虚拟场景虽然有逼真的视觉效果,但也存在一些缺陷,其中一个重要方面是在三维虚拟场景漫游时容易产生迷失感,用户在漫游时只能看到视野范围中的物体,从而缺乏整体感,容易迷失方向.同时三维GIS的应用模型也还不够成熟,其功能不如二维GIS完善[8].而二维GIS虽然缺乏有效的三维可视化表达能力,但它具有强大的空间分析能力,如缓冲区分析、最短路径分析、拓扑分析等,在功能上更为完善,同时使用起来也更为便捷.因此有必要将二维与三维进行联动开发,在同一框架下充分发挥各自的优势,既具有强有力的三维沉浸感,同时还需要清晰的二维平面图提供全局的定位,以实现二三维显示的联动和二维空间分析结果的三维同视功能.

二三维动态交互的基本原理是:基于二维地图和三维虚拟场景所具有的统一坐标系,通过彼此之间的坐标对应关系来实现二三维的联动,并通过交互时的事件触发机制保持其变化时的同步[9].

在二三维联动模式中,二维地图主要以鹰眼窗口的方式提供.用户在三维漫游时,在鹰眼图中显示当前的视野和位置,当三维场景中的视点发生变化时,鹰眼中的焦点框也随之变动,可通过点击鹰眼图中某区域,来直接定位到三维虚拟场景中相应的区域,也可在鹰眼图中指定一条路径,并在三维虚拟场景中按这条指定路径进行飞行漫游.同时,二三维的交互还可以以双屏对比的方式提供.3.3 基于插件技术的集成应用框架平台

插件技术是一种能实现较高层次代码复用的软件架构技术,它把程序功能分散到各个可以动态插入或移除的插件中完成,非常适应需求多变的GIS应用软件开发[10].鉴于三维虚拟校园系统是数字校园的三维基础平台,对软件的复用性、可扩展性和可配置性的要求高,整个系统采用插件式集成应用框架进行构建.

使用插件式集成应用框架,系统采用“集成框架+功能插件”的模式进行开发.系统建设首先开发集成框架,集成框架设计成插件容器,负责在系统启动时动态加载可用的插件,根据插件配置文件生成交互界面,并提供一套消息流转和解析机制来保障插件间的协同工作.各功能模块按照严格的规范化插件接口实现功能插件,在插件容器中“即插即用”.插件的结构采用“程序集+插件清单”的形式,程序集是插件的可执行部分,它以二进制程序集(dll)的形式提供.插件清单是插件的描述信息,它以XML形式记录插件标识、插件运行依赖项、插件接口界面、插件制作背景等信息[11].各插件如有调用关系,则需在开发初期约定好接口调用描述文件,依赖双方可以在互不影响的情况下各自开发.

在插件式集成应用框架结构中,系统的主程序只负责激活集成框架,功能简单明确,从而有利于减少系统启动等待时间并方便软件的部署与更新.系统的其它各项功能,如三维浏览、图层控制、三维查询、二三维交互等,都以插件的形式实现并根据配置文件动态引入系统.用户如要新增或修改功能,只需按照系统规定的插件接口规范去新增或修改新的插件即可,而不需要对集成框架和现有插件做任何改动.在这种模式下,整个三维虚拟校园系统在软件架构上实现功能模块的高内聚、低耦合和高复用性,系统配置灵活,维护方便,扩展性强.

4 系统实现

根据本文所提出的设计方案和技术路线,以安徽师范大学花津校区为示范区,采用3DMAX建模软件制作了校园三维模型,并以Oracle为数据库软件建立起三维校园数据库.以三维校园数据库为数据基础,在Visual Studio 2008里用C++语言,基于OpenGL和.NET类库,采用插件式开发方法编程实现了虚拟校园系统的各个功能模块,建立了安徽师范大学三维虚拟校园原型系统.部分系统实现界面如图5所示.其中图5(a)为系统启动界面,图5(b)为系统运行主界面,图5(c)为校园实时漫游时的场景图,图5(d)为二三维交互操作界面.

图5 安徽师范大学三维虚拟校园系统

系统经测试在配置有Intel Core 2 T6670 CPU、2G内存、nVIDIA GeForce 310M显卡的笔记本上可达到每秒30帧以上的运行速率,完全满足在普通电脑上实时漫游的需要.实验表明,本文提出的三维虚拟校园系统建设方案合理、技术先进,所构建的三维系统效果逼真,独立性强,具有较好的实用性、稳定性和可扩展性.

5 结论

三维虚拟校园的建设是一项长期的系统工程,本文研究了三维校园建模及系统构建的关键技术,设计并实现了安徽师范大学三维虚拟校园原型系统,取得较好的试验效果,但由于时间和技术的限制,所做的工作还有待进一步完善,三维虚拟校园系统的进一步发展和完善还可以做以下工作.

1)改进校园三维模型的精细程度,实现室内三维查询与漫游.由于时间的关系,实验过程中没有对建筑物内部进行建模,而校园建筑物是学校学习、办公、科研的主要场所,今后可进一步对主要建筑物内部进行三维精细建模,从而实现室内的三维漫游与查询.

2)与现有数字校园的信息化功能进行整合.研究在三维虚拟校园系统的基础上,与现有校园信息系统,如资产管理系统、教务管理系统等进行集成,更好地服务于学校师生,从而提升学校的学习、工作和管理效率,实现教育过程的可视化及信息化.

[1]Zlatanova S,Rahman A,Pilouk M.3D GIS:Current status and perspectives[J].International Archives of Photogrammetry Remote Sensing and Spatial Information Sciences,2002,34(4):66 -71.

[2]武宜广,胡召玲,黄翌,等.徐州师范大学三维虚拟校园设计与实现[J].徐州师范大学学报:自然科学版,2010,28(1):75 -78.

[3]徐峰,陈敏智.虚拟校园三维仿真系统的设计及实现[J].浙江工业大学学报,2007,35(2):155 -158.

[4]刘航,王积忠,王春水.虚拟校园三维仿真系统关键技术研究[J].计算机工程与设计,2007,28(12):2934-2936.

[5]康红霞.基于ArcGIS的三维景观建模技术研究[D].西安:西安科技大学,2006:18-25.

[6]林锐,石教英.基于OpenGL的可复用软构件库与三维交互设计[J].计算机研究与发展,2000,37(11):1360-1366.

[7]McReynolds T,Blythe D,Grantham B,et al.Advanced graphics programming techniques using OpenGL[M].SIGGRAPH 98 Course Notes,1998:90-99.

[8]丁宁,孙英君,郝光荣,等.SkechUP和ArcEngine二三维联动系统探讨[J].测绘科学,2010,35(5):183-184.

[9]张荣,刘洋.广州亚运地图网站设计及关键技术研究[J].测绘通报,2011(7):77 -81.

[10]巫细波,胡伟平.基于.NET反射技术的插件式GIS软件设计原理与实现[J].地理与地理信息科学,2009,25(6):41 -43.

[11]张毅,李国卿,赵军喜,等.插件式GIS应用框架关键技术研究[J].测绘科学技术学报,2010,27(4):398-301.

猜你喜欢
安徽师范大学漫游插件
《安徽师范大学学报》(人文社会科学版)第47卷总目次
自编插件完善App Inventor与乐高机器人通信
霹雳漫游堂
Hemingway’s Marriage in Cat in the Rain
基于jQUerY的自定义插件开发
NASA漫游记
《安徽师范大学学报( 自然科学版) 》2016 年总目次
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨
元阳梯田