基于WebGL的三维管线轻量可视化方法
Posted 地理信息世界GeomaticsWorld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于WebGL的三维管线轻量可视化方法相关的知识,希望对你有一定的参考价值。
作 者 信 息
刘 畅1,2,殷 浩3,张叶廷4,5,
谢 潇5,6 ,曹振宇7
(1. 中国中铁二院集团有限责任公司测绘分院,四川 成都 610031;2.西南交通大学 地球科学与环境工程学院,四川 成都 610031;3. 金华市规划与地理信息中心,浙江 金华 321000;4. 武汉大学 测绘遥感信息工程国家重点实验室,湖北 武汉 430079;5. 四川视慧智图空间信息技术有限公司,四川 成都 610000;6.中国科学院沈阳应用生态研究所环境计算与可持续发展重点实验室,辽宁 沈阳 110016;7. 四川省基础地理信息中心,四川 成都 610041)
【摘要】数字城市和智慧社会对综合管线信息三维轻量可视化的需求越来越多。针对全市大范围三维管线丰富的几何、材质与纹理等多细节层次信息三维轻量可视化难题,本文设计实现了基于WebGL的三维管线轻量可视化方法。该方法针对三维管线数据设计了动态组织调度策略,通过异步加载、可见性剔除等技术,把视点相关的管线和管点信息动态接入并实时生成三维模型,基于WebGL以GPU硬件加速的方式进行实时渲染绘制。典型城市综合管线信息管理应用实验表明,该方法能够在网络环境下各种终端上实现多种类型管线多细节层次三维模型的实时真实感可视化。
【关键词】地下管线;WebGL;三维可视化;轻量可视化
【中图分类号】P208 【文献标识码】A 【文章编号】1672-1586(2018)04-0048-04
引文格式:刘 畅, 殷 浩, 张叶廷, 等. 基于WebGL的三维管线轻量可视化方法[J].地理信息世界,2018,25(4):48-51.
正文
0 引 言
城市管线数量庞大、错综复杂、事故频发,管线的管理水平相对滞后于城市建设的发展脚步。城市立体空间中包含海量的多细节层次的管线模型,管线信息具有空间位置复杂、分布不均匀、种类繁多、数据量大、更新速度快等特点,随着智慧城市应用的日益深入,如何在网络环境中高效地实现三维管线可视化成为三维GIS面临的关键问题之一。
目前国内外针对三维管线可视化的研究主要是基于C/S模式,主要分为基于GPU端和基于CPU端两种可视化实现方式,且技术已经比较成熟;但是B/S模式的三维管线可视化多为插件形式或软件平台的二次开发,存在用户需要安装第三方插件,且难以兼容各种浏览器的问题,无法满足广大用户对网络三维GIS轻便性、实时性的要求。
WebGL是一种面向浏览器端三维可视化的跨平台、开放、无插件的三维绘图标准,且提供了直接基于GPU硬件加速的三维渲染。因此,利用WebGL技术实现海量三维管线数据的网络轻量可视化成为十分重要的途径之一。但由于WebGL技术仅支持较小数据量三维场景的可视化,难以直接支持复杂的海量三维管线的实时绘制和交互分析功能,现有基于WebGL技术的数字地球产品均未能很好地支持海量管线数据的高效可视化。为此,本文研究了适合城市三维管线轻量可视化方法,针对海量管网数据加载效率的问题,研究设计了内存数据管理结构、缓存机制以及数据调度策略,并基于无插件、跨平台的Web3D图形库WebGL技术,用实际工程应用数据实验论证了此方法。
1 三维管线轻量可视化的方法原理
城市三维管线数据量巨大,无法一次性将所有信息调入内存,只能根据用户需求对指定区域内数据加载显示。当用户对管线进行浏览时,就需要频繁、高效地对可视数据进行调度。为保证网络环境下采用WebGL技术对海量三维管线数据的可视化和互操作,本文提出了一种适用于网络环境下海量管线数据的轻量可视化方法,具体流程图如图1所示。
图1 海量三维管线轻量可视化流程图
Fig.1 Massive 3D pipeline lightweight visualization flow chart
2 视点相关的管线数据组织与动态缓存调度算法
海量三维管线数据具有数据分布不均匀、整体连续、数据量大等特点,为了保证三维管线数据的完整性、规范性和一致性,本文设计了视点相关的管线数据组织与动态缓存调度算法。首先构建关系型数据库,针对三维管线数据根据具体情况和用户需求,采用分类、分层的方法来提高数据的检索与分析效率。在此基础上再采用多分辨率场景金字塔对三维管线数据场景进行分层处理,并构建视点相关的R树索引方法,实现三维场景细节层次自适应选择。最后根据视点可视域变化及视点移动趋势,根据动态调度算法对相应的数据块进行加载和缓存。具体流程图如图2所示。
图2 算法流程
Fig.2 Algorithm flowchart
2.1 自适应三维管线数据场景组织
本文首先构建关系型数据库,对三维管线数据根据具体情况和用户需求,采用分类、分层的方法来提高数据的检索与分析效率。管线数据分类一般是按照专题划分的,通常包括给水、排水、电信、燃气、热力等管线专题(如图3所示)。管线数据分层是在管线专题的基础上进行细分。
图3 城市地下综合管线数据模型
Fig.3 Urban underground integrated pipeline data model
根据管线数据的探测方式,管线原始数据分为管点和管线数据,分别用点和线记录,见表1、表2。三维管线的组织要以原始数据为依据轻量化设计成适合三维管线可视化的数据组织方式,减轻数据复杂度,并采用适合网络传输的Json格式对海量三维管线数据进行组织管理。
表1 点记录
Tab.1 Points records
表2 线记录
Tab.2 Lines records
针对内存中的三维管线数据,首先根据管线的位置及形状,利用R树自适应的对场景数据进行空间上不同分层和粒度的划分,并将场景数据分割成便于管理的数据块,然后自底向上遍历R树,为中间节点自适应生成LOD和计算各个层级间的几何误差。自适应R树模型是一种基于R树结构的层次模型,采用MBR(Minimal Bounding Rectangle)的方法对空间进行分割。针对分布不均匀的海量三维管线能够有效地按区域聚合。各层的数据范围可以合理定义,可以根据管线的空间分布特征,适当地调整数据范围,保证在不同的可视场景范围内可见场景中管线数目稳定在某个范围之中。
自适应R树索引划分流程如下:
1)对城市管线区域R树划分,判断是否各场景管线绘制数目不均衡情况;
2)如果有,调整数据范围;
3)查找出所有可视区域内场景子区域内管线数目信息;
4)对上述场景子区域重复执行上述操作,直至各场景管线数目大致相等。
2.2 基于视点的动态缓存调度算法
根据人的视点规律,浏览具有一定的移动趋势、连贯性,因而需要根据视点的移动趋势,建立分区缓冲机制,对视点大概率需要的管线数据块进行预缓存,并用R树结构对缓冲数据进行组织管理。对数据块可见性判断,可将需要调度的数据划分为可见数据、预可见数据和不可见数据。对不同类型的数据根据紧迫程度采用不同的调度策略,可见数据的调度优先级最高,必须保证可视区域内的数据要求,空闲时进行预可见数据的调度,对不可见数据不进行调度。
3 多细节层次三维管线模型实时生成与自适应绘制算法
图4所示为本文设计的海量管线数据轻量可视化算法流程,其具体算法步骤描述如下:
1)开始本帧数据渲染,初始化判断队列、渲染队列,其中判断队列用于存储待可见性判断的管线数据块,渲染队列用于存储本帧完成判断且符合可视化条件的待渲染数据块;
2)读取全部R树根节点管线数据块;
3)对根节点数据块进行可视性判断,处在完全可视域内和不完全在可视域内的数据块执行第4)步,继续向下细分;未在可视域内的数据块不继续向下细分直接进入渲染队列;
4)获取当前数据块的子数据块,判断每一块子数据块是否在视距范围内,如果视距在限内,继续向下遍历子节点,直至视距超限;如果视距超限,结束该分支并存入渲染队列;
5)当判断队列为空时,将渲染队列内存储的LOD数据块数据依次进行可视化,构建LOD多分辨率三维场景;
6)清空判断队列、渲染队列,结束本帧数据渲染。
图4 可视化算法流程
Fig.4 Flowchart of visualization algorithm
4 原型系统与实验分析
4.1 实验环境与数据
搭建了B/S Web环境。GIS应用服务器采用机架式服务器,配置2个Intel 6核Xeon E7 4807处理器,32 G内存,4口千兆网卡;客户端测试平台软件配置如下:IntelCorei7处理器,3.30 GHz,3 MB 2 G内存,512 MB AMD RADEON HD 6350显卡。软件配置如下:Google Chrome 61,Windows 7旗舰版 SP1操作系统。实验数据为金华市全市主干道地下管线数据,包含shapefile格式等地理数据及属性数据。
4.2 实验结果
如图5所示是在三维漫游过程中的2个时间点截取的渲染结果。可以看出在漫游过程中,基于视点位置的变化,动态地选择调度观察者视锥体范围内LOD层次的数据,做到了按需加载。图6是通过Chrome Dev Tools记录的动态漫游过程中的帧率时间线性图,f /s 。在整个渲染过程中,系统运行流畅,渲染帧率始终保持在40 fps左右,性能表现良好。
图5 动态数据调度与可视化效果
Fig.5 Dynamic data scheduling and visual efficiency
图6 三维动态可视化帧率
Fig.6 Frame rate of 3D visualization
5 结束语
面向当今人们对地下管网、管线大数据信息分析、表达、应用的实际需要,针对复杂管线调度效率不高及三维可视化一致性差等关键问题,本文研究提出了一种视点相关的管线数据缓存与调度算法,可有效地将各类地下管线数据浏览器集中展示,实现城市三维地下管线的可视化管理,支持城市地下管线的三维漫游和三维成果汇报,可满足城市管线管理人员和专业技术人员的规划设计、方案设计、施工图设计等不同阶段的需要。基于此技术实现的城市综合管线信息系统,不仅有助于避免市政建设过程中道路的多次开挖,而且还可大大降低施工中地下设施的矛盾与事故隐患,提高管线工程规划设计、施工与管理的准确性和科学性,大量节省规划审批中挖路断面、确定管线走向的时间和费用,最大限度地减少因规划失策所造成的经济损失。
本期回顾
全国科技工作者日座谈会特稿
·
国际视角
·
理论研究
·
·
·
·
·
·
邮箱变更声明
·
网站开通公告
·
诚聘特约审稿专家
·
专题组稿
·
·
以上是关于基于WebGL的三维管线轻量可视化方法的主要内容,如果未能解决你的问题,请参考以下文章