三维GIS引擎地图可视化渲染方案设计
1、GIS地图可视化流程
GIS地图可视化就是将空间数据转化为地图数据再进行交互处理的方法,下图一展示了地图可视化的可编程渲染的典型管道,原始空间数据必须处理为图形API支持基础图元用以地图渲染。下图二展示了一些简单符号的剖分,点符号的基本绘制方法是将其图标转换为纹理资源,并使用两个三角形中的纹理坐标将纹理与点符号绑定。线,面符号的基本绘制方法是直接绘制其剖分后的三角形或梯形,并赋以纹理或颜色以完成绘制。
2 、LOD方法分析
2.1 LOD方法简介
LOD方法的基本思想是依据视觉成像原理即距离越远的物体人眼所能识别的细节就越少,当被观察的对象距离视点较远时模型的细节往往不被注意,一般通过模型距视点的距离对模型进行简化,在不影响视觉效果的基础上最大限度地减少模型的细节,从而降低图形渲染流水线的工作量来提高渲染效率,为复杂场景的实时渲染提供了理论支撑。
LOD方法分为离散(静态))LOD方法和连续(动态)LOD方法如下图所示。静态LOD方法的存储空间与层次粒度存在不可调和的矛盾,即层级越多占用的存储空间越大。静态LOD方法各层次之间存在着差别,较为离散的层次细节之间很难进行平滑的过度,通常通过增加层次细节以减少相邻层级之间的跳跃感,但受限于计算机的存储空间,静态LOD方法不能从根本上解决跳跃感的问题。连续LOD技术是LOD技术的最新扩展,相比离散LOD方法而言,它具有空间连续和时间上渐变的优点,一般通过定义模型的简化规则,在视点变化时对模型进行动态简化生成尺度连续的层次细节。连续型LOD方法可以以较小内存占用取得相对较快的渲染速度,是目前可视化领域内研究的热点。
2.2矢量地图动态LOD方法
在用户浏览地图的过程中,LOD方法可能需要连续执行简化以完成不同尺度的地图绘制,这个过程在计算上是代价昂贵的。对于矢量GIS地图,几何图形采用LOD方法生成的不同层级之间具备几何上的相似性,它们在呈现比例尺上越接近,它们的几何形状相应的越相似。传统矢量地图LOD绘制流程包含简化、剖分与渲染三个步骤。根据当前用于矢量地图LOD方法处理的流程,几何图形必须组织成图形API支持的基础图元进行绘制。
应用BLG树或tGap树可以有效的几何图形,但需要对简化结果进行剖分处理后才可用于图形的绘制,如下图所示。应用BLG树或tGap树的LOD绘制流程中简化与剖分是两个独立的过程,同一几何要素连续比例尺下需要进行多次的剖分导致其渲染效率相对低下。
但LOD方法中同一几何要素在连续比例尺下拥有几何相似性,使得初次剖分的基础图元可以被重复使用。梯形格网渲染方法,通过使用梯形格网结构将LOD绘制流程中简化与剖分的过程统一避免了几何要素的重复剖分,使用面梯形格网简化算法进行简化,简化结果可以直接用于绘制,极大的提高了渲染效率,但该方法只支持面几何要素的渲染且没有考虑投影方式的影响,只适用于2D地图的渲染,其渲染流程如下图所示。
3、投影方式对地图简化的影响
3.1图形观察流水线
在2维图形应用中,图形观察流水线是指模型由建模坐标转换至图形设备坐标的过程,利用裁剪窗口和视口二维图形API进行裁剪操作并将其映射到设备坐标。3维场景则必须先建立观察坐标系,定义观察参数,观察参数包含投影平面的位置,方向等。之后,进行投影操作完成由建模坐标到观察坐标的转换过程,再通过相应的裁剪操作和坐标映射,最终完成建模坐标到设备的转换,并在图形设备进行输出,以像素的形式呈现在计算机屏幕上,如下图所示。
3.2平行投影与透视投影
2维地图一般使用正射投影。在平行投影中,空间上的点平行于投影方向投影至观察平面上,如下图一所示,下图二给出了线段P1P2的平行投影的结果。可见,平行投影保持对象的相关比例不变,具备平行关系的线段在进行投影后结果仍然保持平行关系。通常,获得平行视图的方法一般有两种,一是垂直于观察平面的直线投影即正射投影,二是沿倾斜角度投影到观察面的投影即斜投影。
3维场景下均采用透视投影。在透视投影中,空间上的点与视点的连线与观察平面的交点即为透视投影的投影结果,如下图一所示,下图二给出了线段P1P2的透视投影的结果。透视投影不再保持空间对象的相关比例,透视投影中的空间对象具有远处小近处大的特点,与人的视觉系统较为相似,采用透视投影可以获得较好的真实感。
3.3投影方式对地图简化的影响
2维地图采用的正射投影实现了对空间对象的抽象展示,而为了取得较好的真实感3维场景下一般采用透视投影。本节从投影方式入手研究投影方式对地图简化的影响。
(1) 2维场景的容差因子影响因素
2维场景下,地理要素的位置即是其经纬度坐标。地图尺度的变化通过三维GIS地图比例尺进行反映,同一视口内比例尺统一,矢量地图LOD方法一般采用与比例尺相关的数值作为地图简化的度量指标,地图简化只与比例尺相关,如下图为不同尺度下的矢量地图,可以观察到在较大比例尺下其细节层次较多,较小比例尺下细节层次较少。
(2) 3维场景的容差因子的选取
透视投影中的空间对象具有远处小近处大的特点。如下图中(a)为四个尺寸一致的矩形在正射投影下的展示,(b)为透视投影下某一状态的展示。观察可知由于矩形距视点位置的不同,同样尺寸的矩形在透视投影下尺寸不一致(L1<L4<L2<L3)。三维场景下,当用户进行地图交互式操作时,同一视口内相同尺寸的地理要素由于其空间位置的不同,可能会导致其展现在屏幕上的尺寸也不相同。所以,2维场景下要素简化的度量指标比例尺不再适用于3维场景,3维场景下一般选用对象距视点的距离作为要素简化的度量指标。
3.4透视投影下节点权重的计算
透视投影下模型的简化与视点相关,仅仅通过模型节点几何权重的无法有效的对图形进行简化。因此,本产品提出一种与视点相关的节点权重计算方法,采用DP算法计算模型的几何权重,选用视点距离与某一基准值的比值的n次方作为视点容差因子,要素的权重由几何权重和视点容差因子共同确定。以下分别通过几何权重的计算和视点容差因子的计算进行阐述。
(1)几何权重的计算
采用DP算法进行几何权重的计算,如下图所示。假设V1为首节点,V8为尾部节点,第一次迭代计算出V3权重H1;以V3点为中间节点将曲线分为两段VI ... V3 、V3 ... V8。针对V1 ... V3段,第二次迭代计算出V2权重为H2,分为V1、V2,V2、V3两段,每段只余两个节点,此段迭代结束;针对V3... V8段,计算出v4权重H3,以V4分为V3,、V4段,V4... V8段,针对V3,V4段只余两个节点,结束,V4... V8段继续迭代,最终,计算出所有节点权重,把线首尾节点的权重设为无穷大。DP算法的计算过程如下所示:
a)曲线首尾两点间虚连一条直线,求出其余各点到该直线的距离,并求出最大距离的点记为中间点,此节点与直线的距离H做为此节点权重;
b)将线线段通过中间点再次分为两段曲线,即首节点和中间点组成一段曲线,中间点和尾节点组成一段曲线;
c)重复((a)(b)进行迭代操作,直至曲线只包含两个节点,迭代结束,计算出所有节点权重。
(2)视点容差因子的计算
为满足透视投影下LOD方法依据视点进行简化的需求,设计视点容差因子的概念,视点容差因子是一个比例值,通过某一基准值和对象与视点距离的比值得到,通过比值的次方系数控制视点相关的程度。对象与视点的距离通过计算对象中心点与视点的距离得到,如下图所示。取近裁剪面与远裁剪面之间某一距离如近裁剪面为基准值,视点距离与此基准值的比值的n次方设为视点因子。
4、瓦片技术分析
瓦片方法是一种平铺渲染器的渲染方法,将模型通过规则的格网分解为切片,进行渲染操作时,快速获取相应切片以实现高效的渲染。瓦片绘制方法通常采用四叉树结构用以检索,与立即渲染方法相比瓦片渲染方法以预切片的方式加速了绘制,但切片过程需要极长的预处理时间且切片的存储需要占用极大的内存空间。
4.1矢量瓦片与栅格瓦片对比分析
瓦片一般分为栅格瓦片与矢量瓦片。栅格瓦片是一种预渲染的栅格图块,栅格瓦片绘制方法将矢量数据预渲染成栅格图块,绘制时直接对栅格图块进行渲染,极大的提高了渲染速度。矢量瓦片则是一个被预定义的大致方形地理数据包,矢量瓦片绘制方法是一种样式化地图的新兴方法,进行数据请求时服务器返回地理数据包而不是预渲染的栅格图块,从而可以使用地理数据包进行多样式的渲染。
矢量瓦片绘制方法与栅格瓦片绘制方法相比,矢量瓦片的数据量大大减少,渲染的样式可以在后期进行指定,在数据呈现方式上提供了更大的灵活性,光栅化阶段在客户端完成,依赖客户端的渲染能力。两者的优缺点对比如下图所示:
4.2矢量瓦片渲染方法
矢量瓦片作为新的技术手段可以支持丰富的地图样式渲染,显示效率高且易于地图交互,是一种较为优越的地图渲染解决方案。
矢量瓦片以矢量瓦片金字塔进行组织,使用webgl渲染库进行绘制。矢量瓦片金字塔是一种静态LOD结构,其组织形式如下图所示,在不同的地图层级,通过视口的范围采用四叉树索引快速获取指定的矢量瓦片用以地图的渲染,渲染效率较高。矢量瓦片将矢量数据分割为描述性文件,在客户端指定样式进行渲染,它体积小,检索快,绘制效率高,样式丰富。采用矢量瓦片绘制方法进行矢量地图的绘制是目前较为流行的矢量地图绘制解决方案。
5、空间索引
采用R树作为空间索引结构对数据进行组织,用以加速数据的检索过程。ZTMapGIS空间索引是通过几何要素的空间位置,形状或空间关系对空间几何要素进行组织的一种数据结构。空间索引的基本方法是通过将空间划分成不同的搜索区域,按一定的顺序快速,高效的在这些区域中查询空间实体。按照划分方法的不同,空间索引一般分为基于点区域、面区域和体区域的索引方法。
R树是一种高度平衡树,是B树在k维空间上拓展,是目前最流行的动态空间索引结构之一,其空间存储利用率高,查询效率速度快,广泛应用于商用数据库和方法研究,其结构如下图所示。R树由中间节点和叶节点组成,一般通过空间对象的最小边界矩形(MBR)对空间对象进行检索,支持高效的插入,删除和查询。因此,选用R树作为空间索引结构,用以加速数据的调度。
三维GIS引擎地图可视化渲染方案设计的更多相关文章
- 19个三维GIS软件对比
19个三维GIS软件对比 麦豆科研技术中心 days ago 我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方 ...
- 国内外主流的三维GIS软件
我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方向之一.上世纪八十年代末以来,空间信息三维可视化技术成为业界研 ...
- 开源三维地球GIS引擎Cesium常用功能的开发
Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...
- ROS数据可视化工具Rviz和三维物理引擎机器人仿真工具V-rep Morse Gazebo Webots USARSimRos等概述
ROS数据可视化工具Rviz和三维物理引擎机器人仿真工具V-rep Morse Gazebo Webots USARSimRos等概述 Rviz Rviz是ROS数据可视化工具,可以将类似字符串文本等 ...
- 类似阿里双十一的可视化看板是怎么做的?无人机三维GIS看板也来了!
天猫双十一数据可视化看板 每年的双十一,天猫都会在整点时刻直播战绩,惊叹于可怕战绩的同时,也会被背后展示的数据大屏吸引,这样让人眼前一亮的可视化数据看板是怎么做出来的? 所谓可视化数据看板,就是挂在墙 ...
- 智慧港口——基于二三维一体化GIS的港口可视化监管平台
“智慧港口”是以现代化基础设施设备为基础,以云计算.大数据.物联网.移动互联网.智能控制等新一代信息技术与港口运输业务深度融合为核心,以港口运输组织服务创新为动力,以完善的体制机制.法律法规.标准规范 ...
- Excel真的是三维地图可视化制作最好的选择吗?
随着数据在当下互联网快速发展下变的维度更广,数量更大.结构越来越复杂,人们想要更加清晰,快速的认知和理解一份数据,传统的二维平面图表已经不能满足需求,三维可视化技术越结合多媒体技术.网络技术以及三维镜 ...
- OpenWebGlobe-开源三维GIS初体验(附源码和演示)
1.OpenWebGlobe简介 OpenWebGlobe是一个高性能的三维引擎.可应用于可视化仿真,游戏,三维GIS,虚拟现实等领域.它使用纯javascript编写,可以运行在任何支持HTML5. ...
- 第1部分: 游戏引擎介绍, 渲染和构造3D世界
原文作者:Jake Simpson译者: 向海Email:GameWorldChina@myway.com ---------------------------------------------- ...
随机推荐
- 网站爬取-案例四:知乎抓取(COOKIE登录抓取个人中心)(第二卷)
接着上卷来分析,作为开发人员我们都知道,登录是一个想指定URL发送POST请求的过程,所以我们需要找到请求的URL,以及字段,先用一个错误账号和密码做一下尝试,如果是正确的话会直接跳转到别的页面,这样 ...
- [LC] 40. Combination Sum II
Given a collection of candidate numbers (candidates) and a target number (target), find all unique c ...
- SCI|EI|ISTP|万方|istic|NSTL|CASTD|CNKI|nlc|ethesys|CALIS|CETD|proquest|NDLTD|中国科学院学位论文检索系统|学位论文
BD AC D 三大检索指的是:SCI(科学引文索引 ).EI(工程索引 ).ISTP(科技会议录索引 ) 即Science Citation Index.Engineering Index.Conf ...
- [LC] 277. Find the Celebrity
Suppose you are at a party with n people (labeled from 0 to n - 1) and among them, there may exist o ...
- CSS面试题&知识点汇总
问题&答案 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? 有两种, IE 盒子模型.W3C 盒子模型: 盒模型: 内容(content).填充(padding).边界(m ...
- android greendao的外部封装不太友好。
https://github.com/greenrobot/greenDAO 下载下官网的示例,有完整的封装版本,但自已封装是碰到很多问题. 因greenDao的Master和Session中很多方法 ...
- Soldier and Badges
题目链接:https://vjudge.net/problem/CodeForces-546B AC代码: #include<iostream> #include<algorithm ...
- 聊聊 Airtest 自动化工具
阅读文本大概需要 5 分钟. 很多读者看过之前的文章,发现我使用最多的是一款 Airtest 的自动化测试框架. Airtest 是一款适合于游戏和 App 的 UI 自动化测试框架. 下面对 Air ...
- 安卓权威编程指南 -笔记(18章 处理assets)
resources资源可以存储声音文件,但当处理多个音乐文件时,效率会很低. assets可以被看作随应用打包的微型文件系统,支持任意层次的文件目录结构.类似游戏这样需要加载大量图片和声音资源的应用通 ...
- JMeter接口测试-计数器
前言 在测试注册接口的时候,需要批量注册账号时,每注册一个并且需要随时去修改数据,比较繁琐,除了使用随机函数生成账号,我们还可以使用计数器来进行批量注册. 一:添加配置元件-计数器 二:注册10个账号 ...