基于3DGIS数字化城市海量模型数据调度策略研究

2018-03-04 07:03吴学辉
电脑知识与技术 2018年36期
关键词:四叉树分块海量

吴学辉

摘要:针对海量数据实现动态可视化的瓶颈,提出了一种海量模型数据调度策略算法。在开发3DGIS数字城市系统过程中,提出了基于四叉树场景管理、模型分块、多级细节层次(LOD)的分页数据库的调度策略算法,实现了海量精细化数字城市模型数据库组织与管理的高效性、以及海量数据场景调度的实时性。用提出的海量模型数据调度策略算法应用于运城市3DGIS数字城市系统进行了检测,实验表明,海量模型数据调度策略达到了预期效果,系统浏览交互实时、高效,城市模型视觉逼真、精细,性能提升明显。

关键词:3DGIS;数字城市;海量数据;调度策略

中图分类号:TP301.6      文献标识码:A      文章编号:1009-3044(2018)36-0180-03

Abstract: This paper studies mass model data scheduling strategy of digital city based 3DGIS according to the issue of dynamic visualization of mass model data.In order to realize the efficient database organization and management and mass data scenes real-time scheduling,it proposes the page database scheduling strategy Based on quadtree scene management,model block, multi-stage levels of detail (LOD).Finally, it verifies that the scheduling strategy has achieved the desired results taking 3DGIS digital city system development of Yuncheng as an example.The system has realized the real-time and efficient interaction and realistic and fine city model view.

Key words: 3DGIS; digital city; mass data; scheduling strategy

1 背景

3DGIS是基于3S(遥感技术RS、地理信息系统GIS、全球定位系统GPS)技术、三维虚拟现实技术(3DVR)、计算机技术等关键技术对现代化城市空间信息进行编码、存储、转换、分析和显示的信息系统,真实三维空间描述、可视化和分析管理的地理信息系统[1]。

数字城市,即城市信息数字化,以数字化存储的方式记录城市的一切内容信息。数字城市是现代化城市发展的战略目标,对城市现代化、信息化的建设具有极其重要的战略意义。数字城市有利于提高政府决策的科学性和规范性,使城市规划具有高效性、准确性和前瞻性,具有非常重要的理论价值和现实意义。随着数字化城市的逐步发展,将会对城市规划、城市建设与管理、市民生产与生活、社会经济的可持续发展带来效益和方便。

随着全国数字化城市建设浪潮兴起,数字城市成为热点研究方向之一。各大院校、科研结构及公司纷纷对数字城市理论进行研究,并开展一些系列的系统开发工作,取得了一定的研究成果,如CityMaker三維数字城市可视化平台、Skysymbol网络三维数字城市平台等。由于三维数字城市包含大量地形、影像、城市模型及纹理数据,数据量通常在几百G以上。因此,海量数据成为数字城市实现动态可视化的瓶颈[2]。对于海量级别精细化数字城市模型数据库如何组织与管理以及场景数据如何调度,成为3DGIS数字城市建设的关键问题,也是主要的障碍。

为了实现对3DGIS数字城市中海量精细化数字城市模型数据库的组织与管理的高效性以及场景调度的实时性,作者在天津市三维数字城市系统开发中设计了一种基于四叉树场景管理、模型分块、多细节层次(LOD)的分页数据库的调度策略,该系统达到了浏览交互的实时性和高效性,且有很好的视觉效果。

2 海量数字城市数据组织与管理

3DGIS数字城市的精细模型主要包括地形和影像、房屋模型、道路、绿地、路牌及桥梁、规划数据等,其中,建筑模型是模型数据的主要部分。根据系统设计要求,方便数字城市海量数据的管理,将模型数据内容划分为如表1所示的数据层:

对于数字城市的海量数据,始终浏览与交互只是局部数据,因此,分层分块才是海量数据快速管理的有力保障。下面介绍数据分层分块的基本过程:

1) 分块思路是以地形图图幅为基础,在此基础上进一步进行规则格网划分。

2) 每一个数据层都有一个特定的标识名,如地形-T1、建筑-M2、路标数据-S3、规划数据-P4等。同时,每一种数据都有一个表示该类数据的名称,如地块-Ground。数据按照文件夹目录结构组织,如图1所示:

因此命名方式如下:

FILENAME = 数据层 + 数据类型 + 行文件夹 + 数据文件

地块模型命名为S3\Ground\r(行号)\s3-ground-r(行号)-c(列号).ive,如

S3\Ground\r10\s3-ground-r10-c5.ive。

多层次细节(LOD)模型是加速海量数据场景显示的有效途径,能够保证载入内存的数据始终根据视点,由近及远,不同细节层次的模型数据,从而减轻渲染压力。LOD模型一般通过手动建立不同细节层次的模型数据,工作量大,且耗费时间长,不适合海量数字城市模型数据的批制作。针对纹理数据和模型顶点数据分别采用二次采样和PM箅法[4],生成一系列不同细节层次的模型。

数据经过分层、分块,以及建立LOD模型,海量3DGIS模型数据已经完成制作要求,即完成了海量城市数据的组织与管理。

3 数据调度策略

面对3DGIS数字城市海量数据,场景快速渲染具有一定的难度。由于计算内存大小受到限制,不可能把全部模型直接加载到内存,但实时浏览过程中,用户却希望能够看到城市每一个地方的细节特征。为了解决这一难题,该文提出了一种基于四叉树场景管理、模型分块、多细节层次(LOD)的分页数据库的动态调度策略。四叉树的构建采用Lindstrom 提出的基于四叉树的实时连续LOD 动态生成算法[5]。分页技术是一种根据实时浏览需要,动态加载与卸载场景数据,可以大幅减少CPU 的等待时间,占用较小的内存,不但可以提高效率,而且保证渲染效率[6][7]。传统的分页调度策略是针对海量地形数据进行空间页面( page) 划分,把page 作为地形数据的基本调度单位,在场景漫游时动态的加载[8]。

首先,将整个城市空间依据四叉树的构建原则进行划分,然后自顶而下、依次建立各级R+树的空间索引。空间索引采纳与否以及空间索引性能的优劣直接影响场景调度的整体性能[9]。

其次,在场景实时浏览过程中,需要根据视点的位置,计算当前视点在场景中的索引位置,然后根据空间索引快速计算它与上四叉树各块数据中心点的距离,再根据指定的空间阈值判断是否需要加载或者卸载数据,最终根据视点的变化,不断调整内存中模型的细节层次级别。

4 场景优化

通过以上的调度策略,基本实现了海量数字化城市模型的实时浏览与交互。要想进一步提高渲染效率,还可以做出以下几点改进:

1) 多线程加载数据。为了避免数据反复加载与卸载给场景性能带来的降低,为每一个数据层设置一个单独的线程负责本层数据的加载、卸载及不同LOD模型的加载。

2) 场景裁切。大范围数字城市场景浏览过程中,许多用户往往只关心局部地区或者热点地区,这时直接裁切掉裁切区以外的数据,并直接返回裁切结果给场景,从而进一步提升场景显示的整体性能。

3) 纹理共享。纹理数据占模型存储空间的绝大部分,并且也很大程度影响场景的显示性能。在数字城市海量模型中,大量使用了重复的纹理数据,纹理共享避免了反复加载相同纹理的数据,减少了内存使用量,并提升了渲染压力。

在开发运城市数字城市系统中,我们采用了基于3DGIS数字化城市海量模型数据调度策略,并用OSG(OpenSceneGraph)技术设计实现。

实验环境:

CPU:Intel(R) Core(TM) i7 3.6GHz

内存:8G

显卡:NVS 7100M

测试效果图如图2图3所示:

5 结束语

一直以来,数字城市海量数据可视化、浏览与交互等问题没有得到很好的解决而制约了三维数字城市的广泛应用。该文提出了一種基于四叉树场景管理、模型分块、多细节层次(LOD)的分页数据库的动态调度策略很好地解决了这个问题,并通过实践证明,这种策略确实高效和方便,并已成功应用于天津数字化城市系统建设中。下一步将研究并实现三维数据网络发布与调度,争取而对对加快三维数字化城市的建设和发展起到良好的促进作用。

参考文献:

[1] 郭向坤,林浒,刘继申.一种CPU-GPU协同计算的三维地形实时渲染算法[J].小型微型计算机系统, 2018(4):232-236.

[2] CHEN J, SUN M A. 3-dimensional data model for visualizing cloverleaf junction in a city model[J]. Wuhan University of Technology, 1999, 2(1):9-15.

[3] 王道臣, 万旺根,唐经洲.基于GPU的水面实时渲染算法[J].小型微型计算机系统, 2008(20):127-132.

[4] Hoppe H. Progressive Meshes[M]. ACM SIC-GRAPH, 1996: 99-108.

[5] 郑维欣,贾金原.基于PBR的轻量级WebGL实时真实感渲染算法[J].系统仿真学报, 2017(11):3575-3577.

[6] 林继承,万旺根,崔滨.一种超大规模地形场景的实时渲染算法[J]. 计算机仿真, 2009(11):224-277.

[7] 周珂,陈雷霆,何明耘.PC平台下海量地形的分页调度和实时渲染[J].计算机应用研究, 2009, 26(9):3232-3236.

[8] 曾笮,方美娥,马利庄.改进的MMLT全局照明渲染算法[J].计算机辅助设计与图形学学报, 2016(9):575-577.

[通联编辑:谢媛媛]

猜你喜欢
四叉树分块海量
一种傅里叶域海量数据高速谱聚类方法
分块矩阵在线性代数中的应用
海量快递垃圾正在“围城”——“绿色快递”势在必行
基于WebGL的三维点云可视化研究
一个图形所蕴含的“海量”巧题
反三角分块矩阵Drazin逆新的表示
基于自适应中值滤波的分块压缩感知人脸识别
基于多分辨率半边的分块LOD模型无缝表达
基于四叉树网格加密技术的混凝土细观模型
基于文件系统的分布式海量空间数据高效存储与组织研究