基于三维GIS技术的矢量地图动态LOD渲染方法

发布时间:2020-03-31 11:14:24 作者:臻图信息 阅读量:3716

   从地图操作和要素可见性入手分析地图简化的影响因素,并基于分析的结果设计相应的缓存结构以加速地图的渲染。研究GPU环境下梯形格网的高效LOD方法,探讨简化前后节点的重组和显存中EBO数据的更新方法,最终提出一种基于三维GIS技术的矢量地图动态LOD渲染方法。

1 简化的影响因素

1.1 地图操作对简化的影响

    本文方法依据视点进行简化,当要素与视点的位置发生变化时进行实时简化操作。用户进行地图操作时,当视点与要素的距离发生变化时进行简化,不发生变化时则可以使用缓存数据进行绘制,从而加快渲染。因此,需要讨论地图操作导致的视点与要素的距离变化情况。

    (1)平移操作

    平移操作可能会导致视点与要素的距离发生变化。在非俯仰状态下,平移操作不会导致视点与要素的距离发生变化;在俯仰状态下,平移操作会导致视点与要素的距离发生变化。

 

平移操作示意图

    (2)旋转

    旋转操作可能会导致视点与要素的距离发生变化。非俯仰状态下,旋转操作不会导致视点与要素的距离发生变化;俯仰状态下,旋转操作会导致视点与要素的距离发生变化。

 

旋转操作示意图

(3)放缩操作

放缩操作会导致视点与要素的距离发生变化。

 

放缩操作示意图

(4)俯仰

俯仰操作会导致视点与要素的距离发生变化。

 

俯仰操作示意图

    综上分析可知,在非俯仰状态下,地图平移操作和旋转操作不会改变要素距视点的距离,可以使用上一帧的地图缓存进行绘制,加快其渲染速度;针对俯仰角度较低,平移及旋转操作对简化的影响不大,也可以使用上一帧数据进行绘制。而针对俯仰和缩放操作,要素的权重受视点的影响,需要进行简化操作,如下表所示。

 

1.2要素可见性对简化的影响

    静态LOD方法不需要对地图进行实时简化,直接使用简化后的缓存数据进行绘制,极小比例尺下要素被极度简化使得其顶点数据较少,因此要素极小情况下进行绘制对静态LOD方法绘制效率的影响不明显。而动态简化方式需要对视口内的所有要素进行简化,简化操作的效率对要素数量极其敏感,参与简化的要素越多则简化时间越长,当要素极小时会导致不必要的简化操作造成绘制效率低下。因此,在保证绘制结果的基础上应尽可能的减少参与动态简化的要素。

    比例尺的变化会导致几何要素的呈现状态发生改变,当比例尺极小时人眼无法在屏幕上识别部分几何要素,这些要素绘制与否对绘制效果不会产生太大影响。依据传统LOD方法的绘制策略,要素只要在视口范围内就需要被展示,本文针对要素呈现状态设定可见性阈值,当要素呈现的像素大小小于阈值时不再进行绘制,从而减少参与动态简化的要素数据,提升地图绘制的效率。

 

可见性阈值相关的绘制效果图

2基于梯形格网的矢量地图LOD方法

2.1梯形格网的LOD方法

    本文依据梯形的剖分顺序采用顺序表存储梯形,依据节点权重采用顺序链表存储原始节点序列。在梯形简化的过程中,链表游标存储了当前的简化状态。若下一次地图操作后,简化容差小于链表游标当前容差,则链表向上查询,进行简化操作;若下一次地图操作后,简化容差大于链表游标当前容差,则链表向下查询,进行还原操作。通过要素简化状态(即链表游标)的存储,避免了全局搜索从而加快了简化速度。如下图所示,当前游标为Pcursor,位于节点权重链表Pn+1处,若Pcursor小于Pn+1容差,则向上搜索基于当前梯形格网进行简化操作;若Pcursor不小于Pn+1容差,则向下搜索基于当前梯形格网进行还原操作。

 

2.2基于GPU的EBO数据更新方法

    基于梯形格网的简化算法可知,图形简化后梯形网中的梯形数目或梯形节点位置会发生变化。本文首先通过空间索引检索范围内的对象,依据梯形格网的简化算法对梯形格网进行简化。通过遍历简化后的梯形格网的梯形,获取梯形的状态和节点的索引编号,从上至下进行梯形格网的重组,最终完成显存中EBO数据的更新。以下,本文从缓存方案和梯形格网的EBO数据更新方法进行介绍。

  1)顶点存储方案设计

    GPU中采用顶点缓存对象VBO(Vertex Buffer Object)存储顶点数据,采用索引缓存对象EBO存储索引数据。本文设计了多缓存对象存储和单缓存对象存储两种存储方案用以实现对节点数据和节点索引数据的存储。多缓存对象存储方案针对每一个矢量几何要素创建一个VBO和一个EBO,单缓存对象存储方案将图层的节点数据存储于一个VBO中,将图层的索引数据存储于一个EBO中。

    多缓存对象存储方案将单个要素的节点索引数据存储于一个EBO对象,则要素索引编号不受其他要素的影响,从0开始编号。多缓存对象存储,当某些要素不进行简化时易于使用缓存对象,绘制过程中具有大量的缓存对象绑定、解绑与绘制操作,导致整体绘制效率的相对低下,其存储结构如下图所示。

 

    单缓存对象存储方案将同一个图层的所有节点统一存储于一个VBO对象中,将所有的索引统一存储在一个EBO对象中,要素与要素之间的索引需要进行偏移。单缓存对象存储方案当地图不发生简化时增加了缓存可重用性,绘制过程中只存在一次的绑定、解绑和绘制操作,绘制效率较高。但若图层中某些要素发生渐进,EBO数据需要被重构,其存储结构如下图所示。

 

2)要素的梯形格网索引更新

当用户进行地图操作时,要素可能由某一状态转换至另一状态。依据梯形格网的简化算法可知,梯形格网的简化通过梯形或梯形之间的合并,调整,退化,消融操作来完成,简化操作的本质是对梯形格网的节点进行重组避免了传统方法中数据的重复剖分,只需对梯形中节点索引数组进行更新从而完成EBO数据的更新,不需要进行顶点数据的传输与缓存对象的创建,降低了显存IO的时间,提高了渲染的效率。

    针对线梯形格网,当以斜角连接样式渐进时,直接进行梯形合并;当以平角连接或圆角连接进行渐进时,需要考虑平角连接产生的三角形或圆角连接产生的三角扇,索引的偏移量需要考虑平角连接产生三角形顶点数目或圆角连接产生的扇节点的数目,如下图所示。

 

    针对面梯形格网,如下图一所示:P1至P11为原始节点,Pm至Pm+8为梯形剖分产生节点。如下图一示例梯形格网简化前后部分梯形发生了合并操作,通过遍历梯形顺序表梯形判断其可见性,并获取梯形节点的索引号以重构索引数组,最终进行EBO的更新。简化后的结果下图一所示,简化前后数据变化如下图二所示。

 

图一 面梯形格网简化示意图

 

图二 面梯形格网索引更新示意图

可见,本文方法更新前后不需要进行顶点的再次传输,VBO数据不变,只需对EBO数据进行更新即可完成简化前后的梯形格网数据更新,减少了绘制过程中显存IO阶段的时间消耗,加速了渲染。

3基于GPU的矢量地图LOD渲染方法

3.1基于梯形格网的矢量地图LOD绘制流程

    针对传统LOD方法,简化与剖分分离的问题,本文设计了基于梯形格网矢量地图LOD绘制流程。数据初次加载时完成数据的剖分、权重的计算、梯形格网的构建和顶点数据的传输。在地图渲染的过程中,依据不同的地图操作判断地图或要素是否需要进行简化,针对部分情况下地图不需要重新绘制或要素无需简化,设计地图或要素的缓存,直接使用上一帧的数据进行绘制,从而加快渲染速度。当地图需要进行简化时使用梯形格网进行快速的简化操作,此过程不进行剖分和顶点传输,只需更新EBO数据及绘制即可完成对地图的渲染,加快了地图的渲染速度。如下图所示。

 

3.2图层缓存及要素缓存的设计

    依据上述的分析可知,针对地图操作,当非俯仰情况和俯仰情况较低下,平移及旋转操作不发生地图的简化,因此可以使用上一帧的缓存数据直接进行绘制,提高其渲染速度。以下,分别设计图层缓存LayerCache结构和要素缓存Segment结构以提高地图的渲染速度。

    1)要素缓存Segment结构设计

要素缓存存储索引数据,包含此要素的顶点起始位置、索引起始位置、顶点数量和索引的数量和索引数组。若此要素不发生简化直接使用要素缓存的索引数据用以重构图层缓存,通过使用要素缓存加快渲染的速度,要素结构如下图所示。

 

    2)图层缓存结构设计

    本文设计图层缓存存储地图图层的节点数据与索引数据。图层缓存包含多个Segment,图层没有被简化时直接使用缓存进行绘制,当部分要素需要被简化只需将简化的要素进行更新,使用缓存可以加快地图渲染速度,图层缓存结构如下图所示。

 

4结语

    在梯形格网的基础上,基于GPU环境设计了矢量地图动态LOD渲染方法。首先通过分析地图简化的影响因素探究地图操作对地图简化的影响。之后,选择合适的阈值对要素进行过滤,进而介绍了梯形格网的LOD策略和简化前后EBO数据更新方法。最终,提出了基于梯形格网的矢量地图动态LOD渲染方法。


原文来自:http://www.ztmapinfo.com/blog/index.php/article/37.html

标签:动态渲染  

我要评论

热门标签

数字孪生  智慧城市  三维可视化  城市大脑  智慧社区  三维GIS  新基建  智慧交通  智慧园区  3DGIS  智慧环保  智慧安防  大数据  市域治理  地理信息  物联网  数字化  智慧大脑  GIS  智慧物流  智慧旅游  智能化  5G  智慧管廊  GIS地理信息  管理系统  智慧消防  应急指挥  智慧电网  gis系统  3DGIS+BIM  智慧展馆  服务平台  智慧建筑  GIS+BIM  智慧楼宇  智慧工厂    智慧港口  gis技术  烟草  智慧管理  gis  智慧景区  智慧水务  智慧电力  3dgis  三维gis  三维gis系统  ZTMapGIS仿真地图  GIS技术  智能交通  供应链  gis行业  应急管理  BIM  智能建筑  工业互联网  智慧监狱  元宇宙  智慧工地  综合治理  地理信息系统  智慧停车  智慧校园  三维gis平台  智慧农业  gis三维可视化  智慧能源  三维管网管线  室内地图  地下综合管廊  室内导航  智慧文旅  BIM+3DGIS  智慧医疗  智慧养老  管理平台  智慧机房  互联网  市域社会治理  三维可视化平台  区块链  GIS系统  智慧照明  商业地产  综合管控治理  室内地图导航  人工智能  智慧房产  智慧展览  智慧物业  3D-GIS  gis平台  gis平台系统  BIM轻量化  gis数据  三维GIS技术  gis三维系统  三维gis开发  三维gis技术  三维gis软件  智慧国土  三维GIS、智慧社区  智慧灯杆  应急指挥系统  商场可视化  智能监所  智慧林业  土地规划gis  动态渲染  智慧医院  智慧物流园区  智能电网   智慧公交  三维渲染  二三维一体化  VR全景可视化  资产可视化  二三维GIS地理信息平台  一网统管  智慧管廊综合监管平台  现代化  智能化建筑  map  三维GIS开发  GIS开发  城市规划建设  三维GIS软件  市域社会治理现代化  3D  三维可视化管理平台  智慧海洋  三维gis渲染平台  二三维GIS地理信息  智能热网  三维融合渲染平台  VR全景  综治  党校地图导航  机管局资产管理  兜逛VR  ZTmap3D  智慧商场  商业地产可视化  虚拟展馆  智慧路灯  室内地图定位  室内定位  综合管网  综合管廊  三位可视化  环境监测  ZTMap 3DGIS  bim  智慧电厂  智慧小区  3Dgis  ZTMapGIS  智慧铁路  智慧监测  智慧机场  实景三维  智慧服务区域  2.5D-GIS  地质灾害  三维管廊  智慧交通、数字孪生、3DGIS  智慧工厂、安全生产管理、3DGIS+BIM  数字孪生技术  智慧管网  三维地图  信用社GIS  交通仿真  ZTMAP3D  工业园区管理  信用社地理信息系统  智慧变电站  三维管网  管廊BIM  智慧制造  园区招商  2.5D地图  三维可视化渲染   GIS+BIM  BIM三维模型  安全管理  数字电网  智慧仓储  环保GIS  云gis  gis的基本功能  Webgis  gis地图  BIM平台  智慧环境  城市规划  数据管理  事故救援  业务功能  总体设计  Qt  技术详情  地下管廊  系统改造  gis地图服务  平台构建  电子沙盘  地图符号  系统测试  三维gis平台功能  电力巡检  三维gis二次开发 三维gis接口  管网GIS系统  管网管理GIS服务平台  高校GIS系统  电网GIS行业  配电网gis系统  gis市场  gis设备  gis信息系统  gis平台监控  BIM与GIS集成应用  gis软件系统  移动GIS  视频监控  房产交易地图  VR虚拟现实  GIS应用平台  GIS管网系统  消防GIS系统  管网gis系统  gis服务平台  公共安全  gis高压设备  数字经济  基础设施建设  无人机  系统架构  GIS平台  gis空间分析  环保可视化  三维GIS平台  gis专业  gis地理信息系统  三维gis软件系统  gis三维平台  CIM  数字城市  顶层设计  gis应用  交通运输  数字化城市  三维gis模型  建筑产业  信息物理系统  自动化  城市应急  大数据可视化  系统管理  景观设计  gis应用实例  gis是什么  可视化技术  开源gis软件  可视化  假三维地图  智能楼宇  gis开发  gis空间数据  新零售  导航  应急预案  地产  gis服务  产业链  gis行业发展  gis软件  实景三维gis  
上海臻图信息技术有限公司
沪ICP备19005932号-1