APP下载

基于OSG的电子沙盘系统的研究与实现

2012-11-30杨方廷刘玉明

计算机工程与设计 2012年4期
关键词:沙盘建模节点

韩 哲,杨方廷,刘玉明

(经济领域系统仿真技术应用国家工程研究中心,北京100854)

0 引 言

电子沙盘采用地理信息、视景仿真、大屏幕投影、立体显示等技术,通过对地形地貌、大型工程、城市街区等目标对象的计算机三维视景仿真,融合文字、图表、音视频和矢量数据等二维信息,为用户提供实用便捷、震撼逼真、信息丰富的可视化展示与管理平台,创造出身临其境的空间三维视觉体验。该技术广泛应用于江河流域[1-2]、大型工程[3]、 城市规划[4-5]、 通讯网络、水油气电管网[6-7]等工程信息的可视化展示与管理。本文结合 “山西省水利工程规划电子沙盘”实例,提出了一套利用三维场景渲染引擎 OpenSceneGraph (OSG)[8-9]和大地形建模工具 Virtual-PlanetBuilder(VPB)[10],结合 MFC平台的电子沙盘系统开发方案。该方案主要针对于以实际的地理地形为背景、强调宏观场景展示和场景信息显示的电子沙盘系统,与同类其它系统[11-13]相比,该系统功能强大、内容丰富且对硬件要求较低。该方案还集成了立体显示解决方案并且支持多通道输出显示,视觉效果震撼。该系统可以在全局概貌和细节信息显示方面完全替代普通沙盘并且充分发挥电子沙盘表现力生动、信息丰富、可编辑性和适应性强的特点。

1 系统的设计

1.1 功能架构及特点

电子沙盘系统是一个三维视景仿真交互系统,按照应用领域的不同对其功能实现的要求也不尽相同。针对该类系统共性的内容,结合本系统的技术特点,可以概括出类系统的功能要求,如图1所示。

由上述功能框图可以总结出该系统3大特点如下:

(1)内容丰富、信息翔实:系统支持各种类型海量数据的加载与显示,包括场景模型、二维图片、矢量数据、多媒体音视频等,这些数据用于对系统中地形地貌、城市建筑、工程设施等对象的直观展示。除此之外,系统还支持结合图片和文字对场景的经纬度、海报高度、工程简介、设施概况等场景信息以及系统运行时间、帧速率、视点位置、操作提示等系统信息的显示。

图1 电子沙盘系统的功能架构

(2)人机交互性强:系统支持多种方式的人机交互,用户可以体验不同类型的场景漫游方式,并且用户可以自定义兴趣点以便于场景切换。系统支持信息的查询和自动定位功能,根据用户的操作对相关场景和系统信息进行实时显示。此外,系统还支持与实物电子沙盘的交互操作。

(3)表现力生动、效果震撼:系统采用高分辨率的卫星图片作为纹理进行地形建模,画面清晰,色彩亮丽,立体显示方案结合第一人称的漫游方式以及模拟真实情况的碰撞检测大大提高了系统的沉浸感。系统还支持多通道显示的开发与实现,显示效果震撼,为场景信息展示和科学决策提供有力的工具手段。

1.2 开发方案

本系统致力于表现宏观和细节两个方面的三维场景内容,主要包括模型库的建立以及场景模型管理两大核心部分。系统是在WinXP+VC2005的环境中完成开发的。

场景模型根据建模方法的不同又可以分为作为背景的大规模地理地形模型和重点建筑、工程、设施等具体模型,该过程中用到多层纹理、细节层次节点、实例化及外部引用等建模及其优化的关键技术。

为了方便快速读取和统一管理,最终的模型文件都采用OSG自定义的二进制存储格式:ive格式。ive支持全部的OSG节点结构信息读写,是OSG系统之间数据交互的主要方式,经过优化之后它更适合于迅速读取。安装OSGExp插件之后可以直接在3ds Max中输出.ive文件,也可以直接通过osgconv命令将其它格式文件转换为.ive文件,并且同时把纹理封装进去,大大增加了场景模型的加载效率。经过验证,ive文件对于场景加载的优化效果十分明显,尤其是本系统中涉及三维大地形模型文件 (大小可达几十GB),采用分层的ive文件可以在几秒钟之内加载通常需耗费几分钟时间显示的模型文件。

场景模型管理主要包括在VC平台上利用OSG的场景组织能力完成包括场景加载、视点切换和立体显示等在内的系统相关功能的开发。整个系统的开发框架如图2所示。

图2 系统开发框架

1.3 核心开发工具介绍

1.3.1 OSG三维渲染引擎

OSG是一个基于工业图形标准OpenGL[14]的高层次图像开发API接口,即三维渲染引擎。OSG在图形开发流水线中处于场景图形中间件的位置,用于连接上层图像应用程序和底层OpenGL代码。

作为一款功能强大、具备工业应用水准的场景图形管理开发库,OSG的优点显而易见:首先是开发的高效性,它将OpenGL的底层代码封装成为更易操作的开发接口,使原来成百上千的OpenGL命令变成了几个简单的API调用,大大提高了开发效率;其次是开源和平台无关性,OSG是公开源代码的,用户可以在Internet上下载源代码,而且它是用可移植的ANSI C++编写,因此OSG具有跨平台性,可以运行在Windows、Mac OS X、UNIX、Linux等操作系统上;还有OSG强大的扩展性,它封装并提供了针对几乎所有主流数据格式的可扩展的读写接口,它还支持数量众多功能各异的可扩展插件的开发,全世界的开发者都在不断的推动OSG向前发展。

OSG的源代码包括一系列动态链接库 (.dll/.so)、插件 (.dll/.so)、供开发者使用的静态链接库 (.lib/.a),以及可执行的工具程序和示例。按照其功能划分,OSG的API库大致可以分为以下4种类型:OSG核心库、插件库、内省库和插件库[6]。

1.3.2 大地形建模工具VitualPlanetBuilder

VitualPlanetBuilder是基于OSG开发的专门针对海量地形模型生成的第三方工程工具,可以读入多种类型的地理影像和高程数据,并构建各种规模的分块分页地形数据库。VPB与OSG紧密结合,它所生成的瓦片数据可以方便的通过网络进行传输,或者保存在本地进行快速、精确的浏览。VPB依赖于GDAL库和LibSquish库,分别实现了地理信息数据的识别和多种DDS图像压缩格式,目前已经具备TB级别的数据处理能力,并可以使用分布式文件系统来执行并发的数据处理。

VPB的功能非常强大,它支持目前大部分的地形数据格式并包含了众多功能参数。可以指定建模原始数据来源路径并且对建模过程中LOD层数及可见范围、垂直幅度放大率、输出ive模型名称等参数进行设置。VPB尤其适宜于整个地球范围内的大地形建模,用户可以对东、西半球纹理数据、南北极半径和赤道半径进行直接设置。另外,VPB支持多线程作业,可以根据CPU个数和性能合理分配系统资源,提高模型生成效率。

2 关键技术

2.1 场景结构的管理和组织

基于场景图 (scene graph)的强大功能,系统采用自上而下的树状图结构来完成各种功能节点的定义和管理。场景树状图的顶端是一个根节点,从根节点向下延伸确定场景各个功能子节点的层次关系。

OSG中定义了不同种类、功能各异的子节点类型,组节点 (Group)可以指定其父节点和子节点,用于确定层次结构,一般场景根节点也是Group类型;文件读取节点(ReadNodeFile)用于读取外部模型文件;开关节点(Switch)可以实现场景模型切换;观察器节点 (Viewer)用于完成场景的绘制和输出。基于本电子沙盘系统的功能需求,整体组织结构如图3所示。

图3 系统场景组织结构

这种树状场景图结构的优点是结构层次清晰便于管理和设置,然而,当应用程序不再使用场景图形时,每个节点所使用的内存需要释放以避免内存泄漏,如果要编写代码遍历整个场景图形并依次删除节点及数据,那么这项工作将是巨大且容易出错的。为了提高场景内存管理效率,我们利用OSG特有的内存引用计数器 (reference counted memory)工作方式。场景中所有节点均继承自通用的基类osg::Referenced且用智能指针模板类ref_prt<>加以声明,这样每个节点均采用引用计数 (reference count)的方式,当引用计数值减为0时,此对象被自动释放。这样删除场景图形时,只需简单的释放指向根节点的指针,所有子节点和数据将逐一被释放,并且这一机制可有效防止内存泄漏。

2.2 三维大地形建模技术

三维地形是虚拟自然环境中不可缺少的因素,也是视景系统的重要组成部分,但地形高程数据和纹理数据异常庞大,超出了一般图形系统的实时渲染和内存管理能力,为了达到一个较好的可视化效果,就对建模和实时显示方案提出较高的要求。

本系统利用OSG海量地形处理工具VPB完成了高效海量地形建模,利用地形数据 (通常是数字高程模型DEM)建立三维数字地形,贴上带有位置坐标信息的纹理数据 (通常是数字正摄影像图DOM),最后生成了包含分页细节层次节点 (PagedLOD)的ive地形模型。图4展示了构建三维地形模型的一般过程[15-16]。

图4 三维地形建模一般过程

为了提高实时绘制的效率,大地形模型文件一般都采用细节层次节点 (LOD)技术进行优化,模型的精细度随着视点到场景距离的远近而发生变化,这样更符合实际的观察规律,更重要的是这样会使场景绘制流程的观察体裁剪工作的复杂度大大降低,从而加速场景绘制。

与普通的LOD节点不同,VPB生成的地形模型采用OSG特有的分页细节层次节点 (OSG::PagedLOD),LOD节点只能存在于一个文件之中,而PagedLOD的每一个节点都是可以是单独的模型文件。因此,VPB生成的模型并不是一个文件而是一组按特定规律命名的不同分辨率的许多个细节模型文件,每一个细节模型文件都可以单独加载和显示,有一个总的PagedLOD节点模型文件只提供索引作用,每个子节点单独存放于磁盘中。分页细节层次节点实现了动态分页加载,加载工程中有单独的线程负责实时调度,使场景渲染更加高效。图5展示了VPB生成模型的分页细节节点层次结构。

图5 PagedLOD结构

2.3 场景切换路径设计

本系统开发了两种场景切换模式,其中第一种是直接切换,实现方法也比较简单,只要将事先定义好的或者用户实时操作命令生成的观察参数 (包括视点位置、参考点位置、视角方向等)加载到视景器上并在下一帧输出之前刷新显示即可。为了提高视觉效果的生动性,结合电子沙盘系统大场景的特点,本系统开发了另外一种模拟飞行的场景切换方式。场景摄像机由当前视点经过中间一系列关键点连续地转移到最终的场景观察视点,这一过程中相机采取俯视图的角度以模拟航拍的效果,这一切换方式可以使用户对场景的整体布局和位置关系有更加直观的了解。

为了实现这一切换方式,可以利用OSG的Animation Path类设置动画路径,利用insert命令向该路径插入4个关键点的观察参数,这4个点分别是当前和最终的观察点及其斜上方45度距离底面500m视角沿地球半径方向向下的另外两个点,这两个点的位置和角度我们可以根据场景大小适当调整。AnimationPath根据定义的关键点插值生成包含全路径每一帧系统时间、摄像机位置和观察参数的列表 (称为关键点列表),定义新的摄像机控制器 (Camera-Manipulator)执行这一列表即可实现摄像机按照既定路径和视角行进。具体程序开发流程如图6所示。

3 开发方案的实现和结果

下面以 “山西省水利工程规划电子沙盘”的实例为具体对象来介绍本设计方案的实现效果。该系统是按照前面所述方案基于OSG结合MFC开发的,是一个以山西省实际的地理地形为背景包含众多水利水文信息,功能强大、生动直观的沙盘模型系统。

3.1 方案应用概况

利用本方案实现的电子沙盘系统生成了山西全境及太行山沿线其它省市与实际地势地形相对应的三维模型,对核心区域进行了精确建模,对关键的水利设施、工程、建筑、设备等具体物体进行了细节建模。所有模型都是按照真实场景1:1建造的,系统还包含了山西省所有大中型河流、水库、泵站的详细信息。原始数据文件大小超过了240GB,主要包括数字高程数据 (DEM),两种分辨率 (1:250000彩色和1:10000黑白,用于不同精细度建模)卫星图片纹理数据以及各种图片文字资料、音视频文件、矢量数据等,系统模型库大小达100GB。

图6 飞行场景切换功能开发流程

系统功能强大,利用建模工具生成分层次的真实三维地理模型,模型精细度随着视点远近发生相应变化;相关信息通过矢量文字和图片的方式显示出来,并开发了手动编辑接口,用户可以自行添加文字图片并且编辑其若干属性 (包括标牌位置,高度,颜色,显示层次等);任意点经纬度及海拔高度都可以实时显示;重点信息 (河流、水网分布,水库、城镇位置等)可以通过闪烁的方式突出显示;系统中多种漫游方式并存,既有OSG自带的便于浏览和操作的轨迹球、驾驶等漫游方式又有自定义的模拟第一人称游戏中步行漫游的方式,而且用户还可以自己录制漫游路径;利用被动式立体投影方案实现了三维立体显示功能。系统实际效果如图7所示。

3.2 矢量文字、图片的显示及其编辑接口的开发

图7 山西省水利工程规划电子沙盘

本系统利用OSG中的osgText工具库开发了矢量文字显示功能,矢量数据不同于普通的模型数据,它是基于TrueType技术用数学函数表述文字轮廓外形直接渲染在屏幕上的,因此矢量文字不受显示分辨率的影响,文字大小不会随着视点远近而发生变化而且可以设置为始终面对屏幕,特别适合于标牌指示。另外,系统还利用OSG的DrawPixel工具库增加了图片显示功能并为其添加了鼠标响应事件,由于DrawPixel也是基于像素直接在屏幕上绘制的,因此它也有 “矢量位图”的效果,用户观察角度变化不会影响位图的朝向。效果如图8所示。

图8 场景文字、图片标注功能的实现

为了方便用户使用,本系统添加了基于Excel表格的手动编辑功能。利用Visual Studio自定义的API接口我们开发了用于读取Excel表格数据的功能类CExcelRead,利用此接口我们可以直接在系统指定的Excel表格中编辑文字标注的位置、内容、颜色、高度、大小、显示层次以及弹出的图片等属性。

4 结束语

电子沙盘系统具有可编辑性强、生动直观等传统实物电子沙盘无法比拟的优点,结合立体投影显示、多通道显示等显示手段可以产生优美震撼的视觉效果,具有光明的应用前景。经过实例验证,上述基于OSG开发电子沙盘系统的方案切实可行且具有便捷、高效、功能强大等优点,而且OSG的开源特性可以使我们开发出具有自主产权的系统。但是,由于OSG自身特点的限制,此方案对程序员的开发水平要求较高,需要在优化场景渲染效率、开发平台产品化等方面做更多、更深入的研究。

[1]YIN Xi-shuang,ZHOU Yi-hong,HU Zhi-gen,et al.Re-search on dynamic simulation an d visualization for construction process of hydropower project based on virtual reality [J].Journal of System Simulation,2005,17 (7):1690-1693 (in Chinese).[尹习双,周宜红,胡志根,等.基于虚拟现实的水电工程施工动态可视化仿真研究 [J].系统仿真学报,2005,17 (7):1690-1693.]

[2]LIU Yu-ming,YANG Fang-ting,JI Liang-xiong,et al.The realization of 3dscene simulation system of Shanxi Wanjiazhai yellow river water diversion project [J].Journal of System Simulation,2009,21 (6):1591-1595 (in Chinese). [刘玉明,杨方廷,纪良雄,等.山西省万家寨引黄工程三维视景仿真 系 统 实 现 [J]. 系 统 仿 真 学 报,2009,21 (6):1591-1595.]

[3]YAO Hong-wei,TU Ying.The research and development of electronic sand table in water transfer from south to north project[J].Journal of System Simulation,2002,14 (12):1598-1602(in Chinese).[姚宏伟,涂颖.南水北调电子沙盘系统的研究与开发 [J].系统仿真学报,2002,14 (12):1598-1602.]

[4]DU Zhi-qiang,LI De-fen,ZHU Yi-xuan,et al.3DGIS based reconstruction and visualization of timber-frame building cluster[J].Journal of System Simulation,2006,18 (7):1886-1889(in Chinese).[杜志强,李德仁,朱宜萱,等.基于3DGIS的木构建筑群三维重建与可视化 [J].系统仿真学报,2006,18(7):1886-1889.]

[5]CAO Jing,SHAO Yuan-zheng,ZHANG-Yu,et al. Fast modeling and roaming of large terrain [J].Journal of Yangtze River Scientific Research Institute,2008,25 (4):40-43 (in Chinese).[曹晶,邵远征,张煜,等.大范围地形及城市三维快速建模与漫游 [J].长江科学院院报,2008,25 (4):40-43.]

[6]Michael Zeiler.Modeling our world [M].New York:ESRI,2000:89-92.

[7]Hong Liang,Raj Arangarasan,Larry Theller.Dynamic visualization of high resolution GIS dataset on multi-panel display using ArcGIS engine [J].Computers and Electronics in Agriculture,2007,58 (2):174-188.

[8]Paul Matrz.OpenSceneGraph quick start guide [EB/OL].http://www.osg-books.com/books/osg_qs.htm,2006.

[9]WANG Rui,QIAN Xue-lei.Design and APPLICATION OF OpenSceneGraph[M].BeiJing:TsingHua University Public House,2009 (in Chinese). [王锐,钱学雷.OpenScene-Graph三维渲染引擎设计与实践 [M].北京:清华大学出版社.2009.]

[10]XIAO Peng,LIU Geng-dai,XU Ming-liang.Programming guide of OpenSceneGraph [M].Beijing:TsingHua University Public House,2009(in Chinese). [肖鹏,刘更代,徐明亮.Open-SceneGraph三维渲染引擎编程指南 [M].北京:清华大学出版社,2009.]

[11]TAN Shu-ren,ZHANG Mao-jun,CHENG Gang,et al.Study on augmented reality electronic sand table and key technique[J].Journal of System Simulation,2007,19 (20):4727-4730(in Chinese).[谭树人,张茂军,程钢,等.增强现实电子沙盘及关键技术研究 [J].系统仿真学报,2007,19 (20):4727-4730].

[12]HOU Huan-huan.Research on generation method of electronic sand table based on ArcGIS[D].Taiyuan:Taiyuan University of Technology,2010(in Chinese).[侯欢欢.基于ArcGIS的电子沙盘生成方法研究 [D].太原:太原理工大学学位论文,2010.]

[13]HUANG Bo.The design and implementation of large terrain 3Delectronic sand table system [D].Chengdu:University of Electronic Science and Technology of China,2009 (in Chinese).[黄波.大地形3D电子沙盘系统的设计与实现 [D].成都:电子科技大学学位论文,2009.]

[14]Dave Shreiner,Mason Woo,Jackie Neider,et al.OpenGL programming guide[M].6th ed.Sun Microsystem Press,2008.

[15]YANG Jing,LI Cheng,FEI Li-fan.The application research of large terrain simulation based on CTS [J].Science of Surveying and Maping,2008,33 (1):185-187 (in Chinese).[杨进,李程,费立凡.基于CTS的大地形仿真应用研究[J].测绘科学,2008,33 (1):185-187.]

[16]DENG Ye,FANG Wei-ning,TIAN Sheng-cai.The real time modeling method of 3Dterrain in scene simulation system [J].Journal of Beijing Jiaotong University,2007,31 (4):124-127(in Chinese).[邓野,方卫宁,田生彩.视景仿真系统中三维地形的实时生成方法 [J].北京交通大学学报,2007,31 (4):124-127.]

猜你喜欢

沙盘建模节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
沙盘游戏
ERP电子模拟沙盘在高校创新创业教育中的应用
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于AutoCAD的门窗节点图快速构建
沙盘活动设计、实施和反思——以武夷山一中沙盘活动开展为例
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
抓住人才培养的关键节点