基于OSGEarth的城市三维场景构建

您所在的位置:网站首页 动态调度技术 基于OSGEarth的城市三维场景构建

基于OSGEarth的城市三维场景构建

2023-04-13 19:09| 来源: 网络整理| 查看: 265

吴小东,许捍卫

(1.河海大学 地球科学与工程学院,江苏 南京 210098)

城市三维场景构建是“数字城市”建设[1]的关键技术之一。面对TB级以上的海量数据,虽然随着计算机硬件技术的发展,在一定程度上缓解了大规模数据渲染的问题,但是仍然无法从根本上解决 “有限的系统资源与无限大的数据量的矛盾”。目前常见的方法是细节层次技术(LOD)和数据分页技术。

OpenSceneGraph(简称OSG)是一个基于工业标准OpenGL跨平台的三维开源场景图形系统应用程序开发接口(API)。作为一个高性能的图形开发引擎,它在3D程序开发中扮演着重要角色。OSGEarth是Gleen等人在OSG的基础上建立的一个开源项目。OSGEarth在GDAL与OGC的基础上可以加载众多来源的数据,并且可以加载众多类型的三维模型数据,支持不同的数据格式,以插件的形式驱动。本文采用OSGEarth,结合LOD和数据分页技术构建城市三维场景,为“数字城市”建设提供基础框架。

1 OSGEarth数据基础

OSGEarth是基于标准C++和OSG开发的,采用实时的地形数据加载和渲染策略[2],具有良好的多源数据支持与数据管理功能。

1.1 OSGEarth视图

OSGEarth目前支持2种类型的视图:Geocentric是地球Globe视图,类似Google Earth全球Globe视图;Projected是平面投影坐标系下的Flat视图,支持多种地理坐标和投影坐标系统。

1.2 OSGEarth数据支持

OSGEarth采用驱动器的方式来支持各种GIS数据源,它自带有多种驱动器,如GDAL驱动器,用于处理影像和DEM数据;TMS驱动器,用于处理采用TMS协议的瓦片数据等。此外,OSGEarth的高扩展性使得用户可以根据需求自行扩展其他类别的驱动器。表1为OSGEarth目前支持的各种驱动器。

表1 OSGEarth的驱动器及其支持的数据格式统计表

1.3 OSGEarth数据管理

OSGEarth采用类似于ArcGIS中图层的概念来进行各类数据的管理,分别有影像层、高程层和模型矢量层等。不同图层对应不同的数据类型。这样的方式更易于不同分辨率的影像、高程以及模型数据的叠加。

2 LOD与数据分页、动态调度2.1 LOD

LOD(level of detail)是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算[3]。在OSG的场景结点组织结构中,专门提供了场景结点osg::LOD来表达不同的细节层次模型。其中,osg::LOD结点作为父结点,每个子结点作为一个细节层次,设置不同的视域,在不同的视域下显示相应的子结点。

2.2 数据分页与动态调度

在城市三维场景中可以采用数据分页的方式进行动态调度[4]。这里“分页”的意思是随着视口范围的变化,场景只加载和渲染当前视口范围内数据,并将离开视口范围内的数据清除出内存(可以设定不同的数据卸载策略),不再渲染。保证内存中只有有限的数据量,场景的每一帧也只有有限的数据被送到图形渲染管道,从而提高渲染性能。OSG源代码中提供PagedLOD来进行模型的动态调度。在不同的视域下,PagedLOD动态读取不同细节层次的结点模型,实现了分页LOD显示。OSG内部采用osgDB::DatabasePager类来管理场景结点的动态调度,场景循环每一帧的时候,会将一段时间内不在当前视图范围内的场景子树卸载掉,并加载新进入到当前视图范围的新场景子树。OSG采用了多线程的方式来完成上述工作。

3 基于OSGEarth三维场景构建方法3.1 海量三维地形组织与调度

3.1.1 地形数据组织方式

OSGEarth采用动态四叉树LOD方式进行地形数据的组织,地形数据被实时地划分为不同LOD层次瓦片序列,基于视点进行动态、分页的调度和渲染。整个地形场景是一棵瓦片化的四叉树(如图1所示),四叉树低层次(低精度)的影像是从高层次(高精度)的影像上实时重采样获取的,这种四叉树的组织方式,理论上可以支持无限的数据量负载。

图1 基于四叉树LOD地形设计

3.1.2 数据的瓦片切割

OSGEarth采用GDAL进行影像数据的处理,当影像数据达到GB级甚至TB级以上时,影像的实时处理(读写、坐标变换、瓦片化等)就会变得异常缓慢,虽然可采用预设金字塔等方式来加快影像的处理,但仍不能满足地形实时渲染的需求。为此,在进行地形三维场景构建时需要对影像和DEM数据进行预先瓦片分割处理[6],瓦片切割的规范可以采用TMS、TileCache等。

TMS即瓦片地图服务(tile map server),是OSGeo(开源空间信息基金会)发布的一种地图瓦片规范。它将影像按照瓦片切割的规则,按不同分辨率切分成一系列的地图瓦片,以增强其访问速度。图2为TMS瓦片的切割方式。

图2 TMS瓦片的切割方式

本文采用图像瓦片切割软件MapTiler对影像和DEM进行TMS切割,切割的瓦片尺寸直接影响到地形动态创建的效率。一般影像瓦片大小设置为256×256,DEM瓦片大小设置为32×32。分割好的瓦片数据可以在本地或者基于Web的方式发布,供OSGEarth调用。如图3所示,采用TMS瓦片切割方式,将切割后的TMS影像瓦片和DEM瓦片渲染为三维场景效果。

图3 三维地形

3.2 海量地物的组织与调度

地物建筑物模型的三维表达是城市三维可视化的一个重要组成部分,面对着海量的建筑物模型,需要合适的组织与调度才能实现流畅的渲染。

基于“瓦片分割”的思想,本文将海量的地物建筑物数据进行瓦片分割,按照矩形区域将建筑物模型划分为一个个的矩形瓦片结点,并设置多个LOD层级,不同LOD层次对应的瓦片结点的尺寸不同,上一LOD层次的瓦片结点尺寸为下一级的1倍。对应的地物建筑物模型的细节层次也不同,瓦片结点尺寸越大,对应的模型细节层次就越低。每一个瓦片结点对应着一块矩形区域,包含位于这个矩形区域的所有建筑物模型。不同层级的瓦片结点对应着不同细节层次的建筑物模型,金字塔的顶端是最简化的建筑物模型,金字塔底端对应最精细的建筑物模型。

图4 地物瓦片划分

具体的算法步骤如下:

1) 确定数据区域的矩形坐标范围,作为第1个细节层级的瓦片结点,读取该LOD层次下的所有建筑物模型,设定该瓦片结点的视域范围,如0~10 000 m。

2)上一瓦片结点被细分成4个新的瓦片结点,如图4左图所示,分别确定4个瓦片结点的坐标范围,根据每个瓦片结点的坐标范围,读取该LOD层次下的所有建筑物模型,并设定每个瓦片结点的视域,如0~8 000 m。

3) 再次递归将上一级的4个瓦片结点分别细分成4个新的瓦片结点(共16个瓦片结点),如图4右图所示,重复上述操作,直到四叉树划分完毕。

4) 将生成的四叉树模型保存,程序结束。

3.3 地形与地物融合

在实际的城市三维可视化建设中,地物建筑物建模和地形建模一般是分开进行的。地物建筑物的建模一般是根据底面精确的地理坐标和模型的高度采用建模软件或其他自动化建模方法完成[7],在建模的过程中没有考虑地形的影响,也就是说模型底面是不带高程的。而地形建模,无论是采用tin还是grid的方式,都只是对真实地形的一个近似模拟,在构建地形的过程中一般也没有考虑地表地物的影响。这样,当地形和地物进行匹配融合的时候就会造成地物建筑物模型陷入地面以下或者悬浮到空中。这就需要进行地物与地形融合,具体流程如图5所示。

为了实现地物与地形的融合,需要获取地物中心点XY坐标下的地形高程Z值,然后根据Z值将地物抬高到地形表面。地物模型的中心点所处的高程Z值的获取方法是射线求交[8],这种方法在三维场景虚拟现实中有大量的应用,如碰撞检测等[9],其原理如图6所示。

图6 射线求交

以地心A点(Flat场景下为地物中心正下方地下6 000 km一点)为起始点,连接地物建筑物中心点B,形成射线,与地形相交于C点,这个C点即为地物地面中心点的实际位置。通过坐标变换矩阵,将地物的位置偏移抬高到C点,完成地物与地形的融合。

4 应用实例

结合本文研究及泰州市相关数据,集成OSGEarth与MFC,完成泰州市城市三维场景相关建设,实现导航、鹰眼、距离测量、路径漫游、汽车漫游、地球Globle漫游等三维场景漫游功能,场景光照、场景雾效、天空背景、场景颜色等场景管理功能及“布告板”技术下的文字地名标注功能(如图7所示)。该系统中一共加载了20 000多个3DS格式的城市建筑物模型、地形及影像数据,在配置NVIDIA GT540M显卡的机器下测试,平均帧速在40以上,而一般帧速达到15以上就可以流畅地渲染,取得了良好的渲染性能。

图7 泰州市城市三维场景

5 结 语

本文研究OSGEarth中三维地形与地物的组织与调度、地形与地物融合问题,并以泰州市为例,构建了基于OSGEarth的城市三维场景,实现了大规模地形、地物的实时漫游显示, 在此基础上进行空间数据的分析与查询,便可建立真正的三维城市地理信息系统, 如与ArcGIS Server相结合,构建二三维一体化的GIS系统,为“数字城市”和“数字地球”空间信息平台的搭建提供基础框架。

[1]朱庆,李德仁,龚健雅,等.数码城市GIS的设计与实现[J].武汉大学学报:信息科学版,2001,26(1):8-11,17

[2]王锐,钱学雷.OpenSceneGraph 三维渲染引擎设计与实现[M].北京:清华大学出版社,2009

[3]赵敬红. 基于OpenSceneGraph的大地形可视化方法研究[D].长沙:中南大学,2009

[3]武玉国,杜莹.大规模地形TIN模型的LOD算法设计与实现[J].系统仿真学报,2005,17(3) :665-669

[4]翟巍. 三维GIS中大规模场景数据获取、组织及调度方法的研究和实现[D]. 大连:大连理工大学,2003

[5]张昊.基于OSG的交通场景三维实时仿真平台研究与实现[D].长沙:中南大学,2010

[6]伏宝光, 严红平.OpenSceneGraph的大地形可视化方法研究[J].软件导刊, 2010(3):176-178

[7]许捍卫. 基于Sketchup的城市三维建模技术[J].测绘科学,2011(1):213-214,189

[8]张辉.基于地理坐标框架下的地物与地形匹配解决方案研究[J].测绘科学,2007(3):90-92,137

[9]万定生.基于OSG的水利工程三维可视化系统研究与应用[J].计算机与数字工程,2009(4):135-137

猜你喜欢 瓦片结点建筑物 LEACH 算法应用于矿井无线通信的路由算法研究电子制作(2022年1期)2022-01-28基于八数码问题的搜索算法的研究电子制作(2021年14期)2021-08-21打水漂扬子江(2021年4期)2021-08-09邻近既有建筑物全套管回转钻机拔桩技术铁道建筑技术(2021年4期)2021-07-21现代中小河流常用有坝壅水建筑物型式探讨黑龙江水利科技(2020年8期)2021-01-21一种基于主题时空价值的服务器端瓦片缓存算法浙江大学学报(理学版)(2020年1期)2020-03-12描写建筑物的词语小学生学习指导(低年级)(2019年9期)2019-09-25惯性扬子江(2019年1期)2019-03-08火柴游戏小天使·二年级语数英综合(2015年12期)2015-12-04

地理空间信息2013年2期

地理空间信息的其它文章基于统计信息的低反差道路半自动提取方法库岸滑坡地质灾害三维演变动态显示方法增强现实及其在导航与位置服务中的应用《环境信息系统》课程实验教学设计与实践面向灾害识别的专题波谱库设计与开发等分分层组合投影研究


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3