本文从地图操作和要素可见性入手分析地图简化的影响因素,并基于分析的结果设计相应的缓存结构以加速地图的渲染。研究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

ae渲染存在偏移_基于三维GIS技术的矢量地图动态LOD渲染方法相关推荐

  1. 基于三维GIS技术的矢量地图动态LOD渲染方法研究现状

    "地图是人类文化的杰作,它融科学.艺术于一体,作为描述.研究人类生存环境的一种信息载体是人类生产与生活中不可缺少的一种工具."这是陈述彭院士为<中国地图学年鉴>作序的开 ...

  2. gis可达性分析步骤_基于三维GIS技术的公路交通数字孪生系统

    交通运输系统是四个现代化建设的重要保障,在"一带一路"倡议规划背景下,互联网+.智慧交通提升到国家新战略.智慧交通的基石是建立可映射物理世界的虚拟世界,因此大多数交通管理平台项目通 ...

  3. 基于三维GIS技术的动态LOD渲染方法的实验及验证

    针对透视投影下现有矢量地图动态LOD渲染方法存在的不足,本文从渲染的客观需求出发使用梯形格网统一了简化与剖分的过程,并研究了透视投影下梯形格网的简化算法.之后,分析了地图简化的影响因素,最终,针对GP ...

  4. 基于三维GIS技术的智慧园区解决方案

    目前,中国拥有各类工业园区约2.5万个,对国民经济的贡献率超过35%.园区经济一直是我国经济发展的主要助推器,尤其是高新区和开发区,更是集聚了几乎所有的优势产业和优秀企业.如何更好地发挥其效能是我们国 ...

  5. 基于三维GIS技术的公路交通数字孪生系统

    交通运输系统是四个现代化建设的重要保障,在"一带一路"倡议规划背景下,互联网+.智慧交通提升到国家新战略.智慧交通的基石是建立可映射物理世界的虚拟世界,因此大多数交通管理平台项目通 ...

  6. 基于三维GIS技术的行业发展及研究现状

    一.三维GIS的研究现状 伴随着大家衣食住行的丰富多彩,三维GIS技术被愈来愈多使用在各个领域,如开采.地质学.原油等制造行业.三维GIS研究分析职责分工也愈来愈细,成长了好几个研究内容. 1.三维G ...

  7. 基于三维GIS技术的智慧物流园区建设

    目前北京市正在建设安全.高效.绿色.智慧的物流系统,2019年政府工作报告明确提出要"落实好城市物流专项规划,推动物流配送仓储智能化.绿色化发展".为了实现上述目标,相关区域都在高 ...

  8. 基于三维GIS技术的智慧社区综合服务平台

    连日来,新型冠状病毒迅速扩散,社区作为控制疫情蔓延的关键环节,隔绝疫情刻不容缓.疫情让街道.社区.物业等基础治理单元的工作压力就显得异常沉重.如何能够精准的管控社区人员的进出入,在抗疫情期间为社区居民 ...

  9. 基于三维GIS的场数据模型研究与实践

    地理信息系统(geographic information  sys-tem , GIS)的灵魂是空间分析,而空间分析的基础是空间数据模型.空间数据模型是人们对现实世界地理空间实体.现象以及它们之间相 ...

最新文章

  1. 还在用Spring Security?推荐你一款使用简单、功能强大的权限认证框架
  2. 我的android绘图学习笔记(二)
  3. C#与Excel互操作
  4. C++回顾day01---C++对C的增强
  5. opencv3 for python 之 创建图片绘制简单几何图形
  6. 由浅到深理解ROS(2)
  7. dfs.datanode.directoryscan.throttle.limit.ms.per.
  8. 社团管理系统软件测试,软件测试大作业社团管理系统.doc
  9. DHCP配置——Linux网络服务
  10. 脸上8部位长痘原因与器官关系
  11. MPL2.0协议简介——Mozilla Public License Version 2.0
  12. 看图猜成语微信小程序源码
  13. vs2017 自定义生成规则 错误 MSB3721 命令 ”已退出,返回代码为 1。
  14. 单招考计算机一般考什么科目,单招考试考什么内容 单招都考什么科目
  15. 2017-2018-2 20155203《网络对抗技术》Exp9 :Web安全基础
  16. 指令在Vue.js 2.0中的变化
  17. 基于单片机蓄电池充放电检测系统设计-毕设资料
  18. 80/20法则:少工作,多赚钱,多享受生活
  19. dataGrip导出sql脚本
  20. 1024 程序员节首批 37 位嘉宾阵容公布!院士、技术掌门人、行业精英齐亮相

热门文章

  1. docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake ti
  2. Navicat Premium 数据库开发工具
  3. poi tl 判断空值_使用poi-tl操作word模板
  4. VR分享会邀请函 | 如何利用VR影像创造商业应用新价值?
  5. 【文献阅读】Pre-Training With Whole Word Masking for Chinese BERT
  6. 应用分发是什么意思?APP内测分发步骤
  7. 【攻防世界-Web简单篇】
  8. AI-人工智能 easyAi开发技术
  9. linux的一些命令
  10. 保姆级零基础 C 语言学习路线,万字总结!