|
|
|

矢量地图数据三维实时绘制技术综述

引言 矢量数据三维绘制是地理空间数据三维表达研究的关键问题之一[1]。长期以来,对于地理空间数据三维表达的研究集中在以影像、高程、人工实体模型构建三维地形环境方面,在三维地形数据(影像和DEM)的多分辨率模型、LOD渲染机制、实时绘制算法等方面取...

作者:王 刚,符浩军,霍 超来源:2014测绘学|2015年03月02日

引言

矢量数据三维绘制是地理空间数据三维表达研究的关键问题之一[1]。长期以来,对于地理空间数据三维表达的研究集中在以影像、高程、人工实体模型构建三维地形环境方面,在三维地形数据(影像和DEM)的多分辨率模型、LOD渲染机制、实时绘制算法等方面取得了诸多成果;关于大规模建筑模型的建模、实时调度和三维绘制等方面也有很多进步。但是,如何在三维地理环境中表达矢量数据,一直以来都是一个难题。矢量数据包含了现实世界中地理对象的空间位置、拓扑关系、属性特征等丰富信息,其三维绘制算法是实现三维地理环境下空间信息查询、空间分析、专业领域空间问题建模的前提,而这些正是当前三维地理信息系统研究领域的热点和难点。关于其中的理论基础、技术方法和工程集成实现等方面的讨论比较少,也缺乏系统性。

矢量数据三维绘制不单纯是一个利用计算机图形学的技术方法在三维显示环境中画矢量数据的简单问题。从地理空间数据可视化的研究视角看,矢量数据三维绘制是空间数据可视化的一种重要手段,其可视化的结果形式和实现过程必须适合人的空间认知需求。从地理信息系统的研究视角看,矢量数据三维绘制提供了区别于电子地图的地理信息表达、分析和利用的新环境,在显示、查询、分析等方面,既与传统地理信息系统有天然的联系,又需要新的理论模型和技术方法的支持。

目前,国内外有关矢量地图数据三维可视化的研究主要集中在3个方向:三维地图符号模型、矢量/栅格一体化数据模型与空间索引、矢量地图数据三维绘制技术。基于目前的技术积累,矢量地图数据三维绘制技术有较好的研究环境。近年来,国内外涌现了多种矢量地图数据三维绘制方法。这些绘制方法各有优点,同时也存在着相应的局限性。典型的矢量数据主要包括点(如注记、树木等)、线(如道路、河流等)和面(如国界、湖泊等)3种数据类型。目前,矢量数据三维绘制研究主要针对线和面类型。目前,使用矢量地图数据三维绘制技术较好的解决方案是根据不同的应用需求和技术条件,选择合适的三维绘制方法,一般需要与相应的矢量/栅格一体化数据模型与空间索引联合使用。

本文对国内外近年来矢量数据三维绘制方面的研究成果进行比较全面的归纳梳理,按照三维绘制方法的特点,将矢量数据三维绘制技术分为5类:基于几何的方法、基于纹理的方法、基于模版体的方法、基于GPU着色器的方法和组合式方法。对各类方法的特点、适用范围进行详细的分析。在此基础上,指出目前矢量数据三维可视化研究的发展趋势。

基于几何的方法

矢量数据是以有序坐标点集合的方式表达地理实体。在三维地形的几何模型上表现矢量数据的几何特征是一种直接的思路。各种基于几何的方法在实现上又有不同。

第一类基于几何的方法是矢量数据的点线面几何坐标参与到地形构网的计算中,修改地形表面的起伏特征,通过地形几何特征与地形纹理特征的对应,在三维场景中表示出矢量数据所描述的地理对象[2-5]。矢量数据参与的地形构网过程实际上就是矢量数据几何模型与数字高程模型(DEM)的融合过程,应当能够考虑矢量数据所描述实体的特征,例如湖泊水面是水平的多边形,道路表面一般是横向水平的,房屋建筑在整平改造过的地面上修建等等,据此增加地形构网的限制条件。由于地形几何模型受矢量数据影响发生变化,需要分析融合后地形模型和矢量数据几何模型的精度变化。

这类方法的特点是矢量数据几何模型与地形几何模型融合为同一个固定的几何模型。这样的方法简化了三维场景几何模型的组织调度机制;在几何模型上,已无法对各类矢量数据、矢量数据与地行数据进行区分,也就无法对矢量数据进行选择和其他操作;除非重新构网,否则无法改变矢量数据所描述的地理实体特征;由于只能通过纹理特征才能在场景中显示出矢量数据,造成显示控制的灵活性十分有限。

已有ViewTecTrainBuilder等商业软件将这类方法与LOD机制结合起来创建局部的精细的地形场景。目前,还没有学者研究如何将这类方法应用到大范围、多分辨率、分层分块的三维地形场景中,并对其精度加以评估。

第二类基于几何的方法是将矢量数据作为三维场景中独立的几何模型。其核心步骤是根据地形起伏变化生成矢量数据的几何模型,对基于LOD的地形模型,还需要考虑矢量数据几何模型的LOD组织调度机制。由于矢量数据是单独的几何模型,可以使用颜色、纹理等多种显示方式。

Wartell[6]提出DAGdirect-acyclic graph)数据结构及渲染算法,将二维的折线类型矢量数据绘制在多分辨率的地形上,该系统采用的是一个连续层次细节的地形模型,因此为了使其与当前地形表面匹配,必须在每帧都调整折线的几何节点,这将带来巨大的计算负担。Rui[7]描述了如何在一个静态地形上绘制折线类型的矢量数据。Tony Bernardin[8]在面向地学分析的应用系统中,提出基于几何的矢量数据绘制算法,针对局部、少量的矢量数据三维显示,效果和效率均满足应用需要。AnupamAgrawal[9]将矢量数据用几何模型表示,为了避免矢量数据穿越地形的情况,根据相应地形几何模型在矢量数据中引入新的顶点或线段,从而生成与地形几何表面相匹配的数据模型;当地形几何表面随视点变化时,相应地调整矢量数据的几何模型。一些商业软件如GoogleEarth对矢量数据的显示就是采用这类方法。邹烷[9]采用实时优化自适应网格算法(Realtime optimize adaptive meshROAM)绘制地形,矢量数据在预处理阶段就被集成到地形的LOD模型中,即对于地形的每个层次细节必须创建一个与之相对应的矢量几何数据,这将导致数据量的显著增加,特别是绘制范围较大的面类型矢量数据时。曹雪峰[11]在全球多分辨率地形模型中集成了矢量数据LOD几何模型,并设计了统一的地形和矢量数据组织调度模型。

这类方法的特点是矢量数据几何模型的构建和显示与地形模型的组织调度机制密切相关。为了保持矢量数据几何模型始终“贴”于地形表面,必须根据地形模型的组织调度机制,随着地形数据的显示更新,选用矢量数据对应的模型数据用于场景绘制。其中,必须解决矢量数据穿过地表和浮空的问题。增加新的顶点和线段是构建矢量数据几何模型中必经步骤;设计与地形LOD模型相适应的矢量数据LOD模型,才能保证场景更新的连续性。这样就造成矢量数据LOD模型与地形LOD模型耦合紧密,难以实现通用性。

基于纹理的方法

基于纹理绘制矢量数据的思路直接来源自矢量数据的二维显示方式,将二维显示的矢量数据的图像或者符号绘制在三维地形表面。具体的实现方法各有特点。

第一类基于纹理的方法是按照二维电子地图显示的方式,将矢量数据预先绘制在影像上,再显示在三维地形上[10]。实际上是将矢量数据转换成遥感影像的图像特征,三维地形场景实时渲染时并没有涉及矢量数据。这类方法的特点是矢量数据的表示方式与二维电子地图一致;三维场景更新机制无需改变;必须事先准备好绘有矢量数据的影像,并转换成纹理;三维场景中矢量数据的表示形式(例如符号样式)在预先绘制时设定之后便无法修改。

第二类基于纹理的方法是通过多层纹理融合显示矢量数据[11]。采用二维电子地图的显示方式,将矢量数据按照不同的要素种类绘制在不同的图像上,将矢量数据的图像视为纹理,通过地形模型组织管理起来,在实时显示过程中,可以控制各要素种类矢量数据图像的显示与否、显示优先级以及透明度等。但是,矢量数据的表示形式仍然在预先绘制时设定之后便无法修改,并且随着矢量数据要素种类的增加,纹理的数据量和地形纹理更新的开销将随之倍增。

一般情况下,矢量地图数据描述的空间对象的位置短时间内不会改变,例如境界、道路、水系等,在使用地图符号表达时,每一类要素在一定尺度范围内所选用地图符号样式和颜色也是固定的,多层纹理融合是一项十分成熟的三维实时渲染方法,因此,选择将矢量数据栅格化成图像,在渲染时进行实时多层纹理融合,是一种能够满足三维场景浏览一般需求的解决方法。

第三类基于纹理的方法是在场景更新过程中实时的将矢量数据绘制成纹理,应用到地形表面。其核心步骤是根据当前场景范围准备对应的矢量数据,将其绘制到预设尺寸的纹理上,然后完成纹理映射过程。

在各种具体实现上,预设矢量数据纹理的尺寸和数量、矢量数据纹理与地形LOD模型的结合方式有所不同。Oliver Kersting[12]采用OpenGL支持的P-Buffers扩展将矢量数据动态绘制在纹理上,并使用一种实时纹理金字塔技术,在视点推近时提高矢量纹理的质量。该方法的优点是可以按照需要实时生成某一区域在某一分辨率级别的矢量纹理,而不需要在预处理阶段建立整个场景的多个分辨率的矢量纹理,从而大大节省纹理开销。Jürgen Döllner[1314]在后续的研究中又对此进行了完善,讨论了实时拣选和编辑矢量数据的方法。L. Hernández[15]也进行了类似的研究。

将矢量数据栅格化到一张二维图像上,并将其作为标准纹理直接映射到地面上,从而保证矢量数据与地形表面的无缝贴合。虽然这种方法不需要进行与地形复杂度相关的几何匹配处理,克服了基于几何方法的不足,但是矢量数据的绘制精度受所生成的纹理分辨率的限制,在场景放大时容易出现走样现象。虽然建立矢量纹理金字塔可以减轻走样,但是在绘制大规模场景时会引起巨大的纹理开销。为了解决这个问题,又出现了矢量数据纹理优化方法。Schneider[16]采用透视阴影贴图[17]中的透视再参量化技术来减轻走样;但是它对于纹理上只有几个像素宽的线类型矢量数据,走样问题依然存在。Arne Schilling[18]提出了基于矢量图纹理的城市矢量地图数据的三维可视化方案,在一定程度上减轻了基于纹理方法的走样问题,并在基于网络的可视化系统中实现。曹雪峰[11]在全球多分辨率地形模型中集成了矢量数据纹理实时生成、动态纹理金字塔和纹理透视矫正,分析了矢量数据纹理走样的原因、类型和相应的优化方法。陈鸿[19]提出一种基于视点相关矢量数据纹理的叠加绘制算法,由构造视点相关的透视投影、矢量纹理的动态生成以及纹理坐标的实时计算3个部分组成。与以往算法不同的是,依据当前场景视点得到一个与绘制地形相一致的透视投影来生成该矢量纹理,纹理坐标由GPU并行计算生成,保证了算法的实时高效;由于求得的透视投影能很好地与当前视点下的地形可见范围匹配,从而改进了矢量纹理的像素利用率,达到提高分辨率减小走样的目的,且算法不受地形几何数据的约束。该算法对走样进行了一定程度的控制,并没有完全消除走样。在视点离地面一定高度、视线与地平面垂线夹角较小的情况下,该算法绘制效果最佳;可观察到的走样将发生在视点贴近地面且视线基本与地平面平行的情况下,以及在地形陡峭位置。该算法声称支持各层矢量数据的实时选取与动态编辑,但没有给出示例。

基于纹理的方法在数据组织和调度上部分的实现了矢量数据与地形数据的分离,具有一定的独立性。现有实现方法存在的问题是矢量数据纹理的生成效率受矢量数据规模影响明显;只能在地形表面上以图像的方式显示矢量数据,无法表现矢量数据的立体特征;缺少在三维场景中选择和查询矢量数据属性信息的功能。

基于几何与纹理组合的方法

在基于几何和基于纹理方法的发展过程中,有学者提出了组合式方法,实际上是按照应用需求,使用这两种方法各自绘制不同的矢量数据。Stephen[20]采用组合图层的方式,把矢量数据纹理及其所覆盖的地形几何表面构成独立的图层上,可以对这一图层进行位置操作,在同一视口内实现了三维地形场景和二维地图图层的集成显示。

基于模版阴影体的方法

基于模板阴影体的方法由Schneider [21]借鉴阴影体算法思想提出,先将矢量数据延伸扩展为多面体,并利用这些多面体在模版缓存中生成掩模,然后将掩模应用于三维地形绘制,生成与矢量数据在地形表面上投影相一致的阴影。阎晓东[22]也对基于模版阴影体的矢量数据绘制方法[Schneider2007]进行了研究。

与基于纹理的绘制方法相比,基于模版阴影体的方法能够得到较高的绘制质量,但需要预先将所有矢量数据扩展为多面体,并且所有这些多面体都必须绘制2遍,其中一遍用于在模版缓存上产生阴影体掩模,另一遍才是将矢量数据绘制到地形表面.因此在绘制大规模矢量数据时,会较大程度上影响数据的实时显示。

杨玲等[23]采用基于模版阴影体的矢量数据绘制方法,不同之处是线要素生成包围体时,采用和面状数据一样的方法;叠加距离视点远的要素时,改用近似叠加的方法,在一定程度上降低了矢量地图数据规模对叠加效率的影响;还建了矢量地图的LOD模型,同时结合视景体裁剪及区域索引的方法,使叠加耗时始终控制在一定范围内。但是叠加性能受矢量数据复杂性制约。

基于模版阴影体的方法在很大程度上避免了基于纹理方法的走样现象,但是,由于模版缓存和阴影投射原理的限制,还没有研究表明这种方法可以用于地球表面大范围地形场景的显示,同时也没有研究表明这种方法能够实现矢量数据的符号化显示方式。

基于GPU Shader的方法

基于GPU Shader的方法是在三维地形场景的硬件渲染流程中,依靠现代可编程图形处理器,实时构造和修改矢量数据三维绘制的顶点和片断。

Eric Bruneton[24]提出基于GPU Shader的绘制方法,根据矢量数据对要素的描述,设计相应的着色器,例如道路、河流对应各自不同的着色器,在地形更新时,获取每个地形块上的矢量数据,按照矢量数据的描述,生成几何实体网格,利用预先准备的各类要素的表面纹理、边缘纹理,创建三维矢量数据实体模型,然后对局部地形进行自适应细化,将三维矢量数据实体模型融合在地形模型上,在局部地形上实现了矢量数据在多分辨率地形上的实时绘制、选取、编辑。

Chen Zhuo[25]提出了基于Shader的三维地形场景等高线绘制方法。首先,构建三维地形的坡度图,然后设计Shader根据地形顶点信息生成等高线图像,最后在片断着色器中将等高线图像融合在地形场景中。

基于GPU Shader的方法是随着显示硬件技术发展出现的,为矢量数据三维绘制带来新的技术途径,目前还没有应用到全球地形环境中,但相关的研究已引起国内外学者的关注。

结论

矢量地图数据三维绘制算法能够丰富和扩展三维地理环境所能表达的空间信息种类和容量,并为各行各业进行空间分析、信息查询和领域建模提供技术支撑。矢量地图数据三维可视化应当从地图设计的研究角度出发,分析三维地形环境与矢量地图数据在空间表达上的特点,特别是在以影像为纹理的三维地形场景中,影像与地图符号语言的相互协调,需要依据空间认知理论,从设计原则与方法上进行考量,以保证空间信息传递的正确性、可视化的科学性与艺术性统一。在矢量地图数据三维可视化过程中,依据多尺度理论,对现实世界进行层级性描述和表达,即对地理信息空间进行多层多级分解,空间现象和事物及其关系在不同层级上的表示形式不同,在不同层级之间的表达过渡平滑。因此,从空间认知理论、空间数据建模、空间数据可视化的角度出发,矢量地图数据三维可视化未来发展趋势在于的可视化设计理论、多尺度表达模型、过程化建模、实时渲染与交互技术等。

 

参考文献

[1] 高俊.地理空间数据的可视化[J].测绘工程,20009(3):1-7

[2] 李刚,张军,蒋涛.一种DEM2D数据集成的方法[J].遥感信息,20041:42-45

[3] 刘宁.虚拟地景仿真中地物与地形融合算法与精度评价[D].郑州:信息工程大学测绘学院,2004

[4] 王光霞,刘宁,万刚.虚拟地形环境中道路与地形模型融合算法研究及精度评价[J].测绘学报,200534(4):337-342

[5] 王浩.基于虚拟地景仿真中地物与地形融和算法的初探[D].长春:吉林大学,2006

[6] Wartell ZKang EWasilewshi Tet a1Rendering vector data over global multi-resolution 3D terrain[C] //Proceedings of the Symposium on Data VisualizationGrenoble2003213-222

[7] Rui Xiao PingZhang Yan MinOverlaying vector data on 3D terrain[C] //Proceedings of IEEE International Geoscience and Remote Sensing SymposiumAnchorage20044560-4563

[8]Tony Bernardin, Eric Cowgill, Ryan Gold, Bernd Hamann, Oliver Kreylos, Alfred SchmittInteractive Mapping on Virtual Terrain ModelsIn Proceedings of WSCG (2006)2006

[9] AnupamAgrawal, M. Radhakrishna, R.C. JoshiGeometry-based Mapping and Rendering of Vector Data over LOD Phototextured 3D Terrain Models2006

[10] 邹烷.基于数字高程模型的矢量数据可视化研究[D].北京:中国科学院计算所,2006

[11] 曹雪峰.基于地理信息网格的矢量数据组织管理和三维可视化技术研究[D].郑州:信息工程大学测绘学院,2009

[12] Oliver Kersting and Jürgen DöllnerInteractive 3D visualization of vector data in GIS[C] // Proceedings of the tenth ACM international symposium on Advances in geographic information systems, McLean, pages 107112. ACM Press, 2002

[13] Jürgen Döllner, Konstantin Baumann, Henrik BuchholzRepresentation and Interactive Editing of Vector Data in Virtual Landscapes[J]2005

[14] Jürgen DöllnerGeovisualization and Real-Time 3D Computer Graphics2005

[15] L. Hernández, J. Taibo, A. Seoane, R. López, A. Jaspe, A. VarelaReal-Time Visualization Of Geospatial Features Through The Integration of GIS With A Realistic 3D Terrain Dynamic Visualization System[J]2005

[16] Schneider MGuthe MKlein RReal-time rendering of complex vector data on 3D terrain models[C] //Proceedings of the 11th International Conference on Virtual Systems and MultimediaGhent2005573-582

[17] Wimmer MScherzer DPurgathofer W. Light space perspective shadow maps[C] //Proceedings of the Eurographics Symposium on RenderingNorrköping2004:1-9

[18] Arne Schilling, Jens Basanow, Alexander ZipfVector Based Mapping of Polygons on Irregular Terrain Meshes for Web 3D Map Services2007

[19] 陈鸿,汤晓安,谢耀华,孙茂印.基于视点相关透视纹理的矢量数据在三维地形上的叠加绘制[J].计算机辅助设计与图形学学报,2010Vo1.22No.5753-761

[20] Stephen Brooks, Jacqueline L. WhalleyMultilayer Hybrid Visualizations to Support 3D GIS[J]2008

[21] Schneider MLein REfficient and accurate rendering of vector data on virtual landscapes[J]Journal of WSCG200715(1/3)59-65

[22] 阎晓东,戴晨光,杨靖宇.基于模板阴影体原理的 3维矢量数据绘制算法[J].测绘科学技术学报,200825(1):28-31

[23] 杨玲,张立强,康志忠,等.大规模矢量地图与多分辨率DEM 快速叠加的方法[J].中国科学:信息科学,200940(6):801-808

[24] Eric Bruneton, FabriceNeyretReal-time rendering and editing of vector-based terrains2008

[25] Chen Zhuo, Zhao Yanqing, Yang ChongjunReal-time Contour Map Reconstruction with 3D Terrain on Modern Graphics Hardware[J]2009

上一篇:海洋测绘中水准高程缺失情况下高程基准传…

下一篇:探讨政府购买测绘地理信息公共服务