基于Vulkan的GIS地图可视化文献综述

 2023-08-16 04:08

文献综述(或调研报告):

随着GIS技术的深入应用, 人们越来越多地要求在真三维空间中处理问题.在应用要求较高的行业如采矿、地质、石油等已率先发展了具有部分功能的专用三维GIS, 如加拿大LYNX Geosystems公司的LYNX软件[1].但由于它们一般都是针对自己特定领域开发的, 没有从理论上加以系统完整的研究, 没有面向通用平台进行设计, 因此具有较强的局限性。这也是由当时的应用需求、数据获取手段及相关的计算机技术发展条件决定的。

从视觉的角度GIS可视化分为二维和三维,其中GIS 3D数据可视化的时候,如何设计数据模型和数据结构是一个关键问题。在此之前,大部份研究是基于CAD模型,如: 实体结构几何模型( CSG) ,边界表示模型( BR) ,对这些模型进行修改和扩展。但是由于CAD系统与GIS有很大区别,这些模型的应用存在诸多困难[1]。在3D GIS中应用的数据结构很多,大致可分为两大类: 一类是基于表面表示的数据结构, 有: 格网结构( Grid) ,不规则三角形格网( TIN ) ,边界表示( BR) ,和参数函数; 另一类是基于体表示的数据结构,有: 3D栅格( Array ) ,八叉树( Octree) ,实体结构几何法( CSG)和四面体格网( TEN)。第一类数据结构侧重于3D空间表面表示,如: 地形表面,地质层面等,通过表面表示形成3D空间目标表示,其优点是便于显示和数据更新,不足之处是空间分析难以进行。第二类数据结构侧重于3D空间体的表示,如: 水体,建筑物等,通过对体的描述实现3D空间目标表示。其优点是适于空间操作和分析,但存储空间占用较大,计算速度也较慢。

文献[2]通过定义和实例论证了单一数据结构下各自的优缺点,其中八叉树结构下回随着分辨率的提高将成倍增加数据量,而且八叉树结构始终是一个近似表示。但是八叉树结构具有结构简单,操作方便等显著优点。而四面体格网能够保存原始观测数据,具有精确表示目标和表示较为复杂的空间拓扑关系的能力。但其结构较八叉树复杂,在某些场合数据量较大。所以文献[2]提出了一种混合结构,它将两种数据结构有机结合起来,充分发挥各自的优点,可在不增加存储空间的前提下实现目标的更精确地表示。混合数据结构的实现增加了数据结构的灵活性,在许多场合对提高表示精度,减少数据量十分有益。同时单一的八叉树结构或四面体格网可以看成是混合结构的两个特例。

不管是用哪种数据结构,GIS数据的类型都是向量类型和栅格数据,对于栅格数据则已经按照像素给出相关数值,在可视化过程中可以直接生成二进制结构化数据然后直接用在GPU中,但用户在修改时需要直接修改每一格的数据。而向量类型则可以较容易地进行交互式的修改,文献[3]提出了一种用于矢量数据显示的新技术,该技术能够在3D对象(例如数字地形模型)上精确有效地映射矢量数据。该技术使视觉映射适应上下文和用户需求,并使用户能够通过视觉表示交互式地修改矢量数据。它代表了GIS接口技术的基本机制,并促进了可视化分析和探索工具的开发。

本课题主要关注的道路信息的可视化可以用于实现城市规划。在文献[4]中指出,城市规划涉及功能、测量、分区和。一般来说,城市规划的职能可以分为一般管理、发展控制、规划制定和战略规划。一般行政管理和发展控制是相对例行的规划活动,而制订计划和非例行的战略规划则少得多。所涵盖的规划区域的范围可以从整个城市,到一个城市的一个次区域,一个地区,或一个街区。城市规划最常涉及的领域是土地利用、交通、住房、土地开发和环境。每一个规划规模都有不同的阶段:确定规划目标;现有情况的分析、建模和预测;制订规划方案;规划方案的选择;计划实施;计划评估、监控和反馈。城市规划不同的功能、测量、部门和阶段对GIS的利用也不同。

在具体实现可视化的时候比较常见的渲染API是OpenGL,Direct3D,而较新发布的API Vulkan则具备很多性能上的优势。现在处理器开发通过提供程序可以使用的多个内核,将许多精力集中在并行性能上[5]。 当前版本的OpenGL的问题在于,它不支持使用多个CPU线程来调用渲染命令。 Vulkan是一种新的底层图形API,可为开发人员提供更多控制权,并提供工具以正确利用多个线程来并行执行渲染操作。在文献[6]中通过使用opengl和vulkan编写了相同功能的测试程序评估了vulkan的多线程性能。测试结果表明,如果程序受CPU性能限制,则使用多个线程来生成命令缓冲区将显着提高性能。 在具有低细节模型的测试中,启用四个线程使测试中使用的硬件的性能提高了69%。根据所测试的硬件和使用的场景,性能的提高将有很大的不同。由于程序受GPU的限制,使用高细节模型的测试仅显示1-4个线程之间的性能提高了8%。

除此以外,vulkan使用了显式的管线,在管线状态更改的测试结果显示,当在每个管线对象之间更改时,显式的Vulkan管线设计更加降低性能。 如果仅更改culling和facing时OpenGL的实现速度较快,而更改顶点着色器状态时的OpenGL实现则慢得多。这是由于对于OpenGL,将顶点着色器状态更改会带有更多错误检查的操作,而且必须在运行时执行。 而vulkan可以通过在创建管道时执行这些错误检查,以提供更好的性能。

文献[7]中关于vulkan相关的系统架构的推荐准则有以下几点:

1.“minimal and complete”。即系统的每一个模块要功能单一且完整,不会过度依赖于其他模块。在二次使用的过程中,仅依赖相关的模块时不会引入其他的模块。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。