留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

面向虚拟地球的海陆地形多尺度TIN建模及可视化方法

熊汉江 郑先伟 龚健雅

熊汉江, 郑先伟, 龚健雅. 面向虚拟地球的海陆地形多尺度TIN建模及可视化方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
引用本文: 熊汉江, 郑先伟, 龚健雅. 面向虚拟地球的海陆地形多尺度TIN建模及可视化方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
XIONG Hanjiang, ZHENG Xianwei, GONG Jianya. A Multi-resolution TIN Surface Modeling and Visualization Method for Coastal Areas in Virtual Globe[J]. Geomatics and Information Science of Wuhan University, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
Citation: XIONG Hanjiang, ZHENG Xianwei, GONG Jianya. A Multi-resolution TIN Surface Modeling and Visualization Method for Coastal Areas in Virtual Globe[J]. Geomatics and Information Science of Wuhan University, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678

面向虚拟地球的海陆地形多尺度TIN建模及可视化方法

doi: 10.13203/j.whugis20150678
基金项目: 

测绘地理信息公益性行业科研专项 201512009

国家863计划 2012AA12A405

详细信息
    作者简介:

    熊汉江, 博士, 教授, 主要从事网络环境下空间信息高效可视化方法研究。xionghanjiang@163.com

    通讯作者: 郑先伟, 讲士, 博士。zhengxw104@163.com
  • 中图分类号: P208

A Multi-resolution TIN Surface Modeling and Visualization Method for Coastal Areas in Virtual Globe

Funds: 

The Scientific Special Project of the Public Welfare Industry of Surveying, Mapping and Geographic Information 201512009

the National 863 Program of China 2012AA12A405

More Information
图(8) / 表(2)
计量
  • 文章访问数:  1741
  • HTML全文浏览量:  213
  • PDF下载量:  512
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-03-01
  • 刊出日期:  2017-11-05

面向虚拟地球的海陆地形多尺度TIN建模及可视化方法

doi: 10.13203/j.whugis20150678
    基金项目:

    测绘地理信息公益性行业科研专项 201512009

    国家863计划 2012AA12A405

    作者简介:

    熊汉江, 博士, 教授, 主要从事网络环境下空间信息高效可视化方法研究。xionghanjiang@163.com

    通讯作者: 郑先伟, 讲士, 博士。zhengxw104@163.com
  • 中图分类号: P208

摘要: 提出了一种面向虚拟地球的海陆地形多尺度不规则三角网(triangulated irregular network,TIN)建模及球面快速可视化方法。利用贪心插入TIN表面简化算法构建海陆地形的离线TIN金字塔,并设计了一种高效的虚拟节点结构,对各级TIN构网实施无缝分割和分层分块存储。在利用离线TIN地形金字塔实现多尺度海陆TIN地形的快速检索和三维场景生成的基础上,通过一种接边关系编解码方案实时消除TIN地形渲染时的裂缝,最终实现多尺度海陆TIN地形场景的高效可视化。实验结果表明,该方法能显著减少海面渲染所需的面片数,并实现岛礁、海岸等破碎地形的高保真度表达,有效改善了传统虚拟地球系统采用规则格网(Gird)模式绘制海陆地形导致大量几何冗余和表达失真等缺陷。

English Abstract

熊汉江, 郑先伟, 龚健雅. 面向虚拟地球的海陆地形多尺度TIN建模及可视化方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
引用本文: 熊汉江, 郑先伟, 龚健雅. 面向虚拟地球的海陆地形多尺度TIN建模及可视化方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
XIONG Hanjiang, ZHENG Xianwei, GONG Jianya. A Multi-resolution TIN Surface Modeling and Visualization Method for Coastal Areas in Virtual Globe[J]. Geomatics and Information Science of Wuhan University, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
Citation: XIONG Hanjiang, ZHENG Xianwei, GONG Jianya. A Multi-resolution TIN Surface Modeling and Visualization Method for Coastal Areas in Virtual Globe[J]. Geomatics and Information Science of Wuhan University, 2017, 42(11): 1597-1603. doi: 10.13203/j.whugis20150678
  • 随着“数字地球”、“智慧地球”建设的深入[1-2],以三维虚拟地球为展示平台的“数字海洋”也逐渐成为研究热点[3-5]。但目前在虚拟地球系统方面,只有少数几款支持海洋环境信息的集成和展示,如Google Ocean、Skyline、EV-Globe等[3]。海洋环境仿真是全球虚拟地理环境展示非常重要的一个组成部分,其中海陆地形的精确表达和高效可视化是实现海洋环境仿真的关键环节,也是难点部分。

    根据地形绘制采用的几何模型,大规模地形可视化算法主要分为基于规则格网(Grid)模式的方法和基于不规则三角网(triangulated irregular network, TIN)模式的方法两大类。基于Grid模式的地形绘制方法主要有基于四叉树的方法[6-7]、连续层次细节(continuous level of detail, CLOD)[8]和状态无关单通道自适应(stateless, one-pass adaptive refinement, SOAR)算法[9]以及实时优化自适应网格(real-time optimally adapting meshes, ROAM)算法[10]。基于Grid的方法由于采用的几何结构简单易实现而被虚拟地球系统广泛采用[11]。但这种方法的均衡网格会使得在渲染海面时造成极大的面片冗余,而在渲染陆面时碎部地形和地貌细节又难以顾及,表达精度低, 对后续应用如洪水、潮汐建模和仿真影响较大[12]。此外,近年来由外业测绘及激光探测与测量(light detection and ranging, LiDAR)技术等获取的精细海陆要素数据及复杂的海底地貌数据也日趋丰富[13],这类数据在采用Grid模式的系统中难以集成和表达。

    相比Grid结构而言,TIN结构灵活易拓展,能在不同尺度下保留微地貌和重要地形特征,有效减少平坦区域的几何冗余,同时也易于与各类地理空间数据无缝集成。但基于TIN模式的地形绘制方法研究相对较少,其代表主要有渐进网格算法(view-dependent progressive meshes, VDPM)及其衍生算法[14-15],基于栅格地形金字塔的多分辨率TIN地形算法[16]和BDAM算法及其改进算法[17-18]等。这些方法主要是在解决地形接时结构上有很多限制,难以生成纹理地形或难以适用于本身不规则的输入数据。文献[9]提出了针对LiDAR数据的球面可视化方法,但该方法没有考虑不同分辨率TIN地形的裂缝消除。

    针对此,本文提出了一种基于贪心插入法的多尺度TIN构建方法,利用金字塔模型对多尺度TIN地形进行虚拟切割和分块组织,并设计了一种基于编解码的TIN地形裂缝消除算法,最终在虚拟地球中实现了基于TIN的多尺度海陆地形球面可视化。

    • 贪心插入TIN表面简化算法的基本思想是从一个初始的近似表面开始(对于规则数字高程模型(digital elevation model, DEM)数据,通常是以其4个角点构成的两个三角形开始),迭代式地插入与近似表面误差最大的一个点到三角网中,直到达到特定的误差容差为止[20-21]。在多种误差指标中,最大Z容差计算简单、快速,且在同等顶点数量时,实验说明使用该指标得到的简化表面与原始表面逼近程度最高[22]

    • 针对全球海陆地形数据的海量性,本文采用目前大多数虚拟地球通用的金字塔模型来对其进行管理和组织。海陆地形的多尺度TIN建模实际上就是构建其多尺度的TIN地形金字塔。此时需要解决两个关键问题:一是如何控制TIN地形在每一层的简化级别;二是如何对TIN构网实施规则分块以实现高效检索和纹理贴图。

      针对以上问题,本文首先引入地图制图规范。在制图规范中,地图的比例尺与空间分辨率是有对应关系的,而每个比例尺又有相应的最大垂直误差Zmax精度规范[23]。根据全球金字塔每一层所能达到的空间分辨率,即可导出每一层的Zmax,从而控制每一层TIN的简化级别。针对规则分块的问题,本文设计了一种虚拟节点结构实现对每一层TIN构网的无缝分割及分块输出。根据以上描述,结合图 1,本文多尺度海陆TIN地形金字塔的构建过程描述如下。

      图  1  多尺度海陆TIN地形金字塔构建示意

      Figure 1.  Multi-resolution TIN Pyramid Construction

      1) 初始化。以DEM数据输入为例(对不规则数据如LiDAR点云同样适用),根据原始DEM数据的空间分辨率计算能够达到的金字塔层数。再根据国家制图规范及待生成的各层数据所能达到的空间分辨算得对应的Zmax,并以之为TIN简化的误差指标。对于全球金字塔第n层的数据,其所能达到的经纬度空间分辨率可计算如下。

      $$ \left\{ \begin{array}{l} {D_{{\rm{Lon}}}} = \frac{{360}}{{{X_R} \times {2^n} \times 256}}\\ {D_{{\rm{Lat}}}} = \frac{{180}}{{{Y_R} \times {2^n} \times 256}} \end{array} \right. $$ (1)

      其中,XRYR分别为全球金字塔首层的经向和纬向分块数;DLonDLat分别为经向和纬向空间分辨率。取经向分辨率DLon换算成大地直角坐标下的空间分辨率Dr(单位为m),那么该层TIN所对应的Zmax即为4×Dr/5。

      2) 贪心插入法构TIN。以原始输入DEM的4个角点为顶点组成两个三角形,构建初始Delaunay网。利用贪心插入法,不断向当前网中插入顶点。根据金字塔自顶向下不同层的Zmax进行判断,每当待插入点的误差小于某一层规定的Zmax时转步骤3。

      3) TIN构网虚拟分割。根据原始输入数据的空间范围以及当前构网所在的金字塔层次,计算当前层的分块网格大小以及被当前构网所覆盖的网格范围。对每个被覆盖的网格,利用其角点及网格边界与当前三角网求交。利用线性插值对所得交点进行高程采样,并作为虚顶点加入到当前构网中,从而实现对块边界三角形的分裂,分裂所得三角形记为虚三角形。这里,虚顶点的插入只是保障每个块中形成一个独立的构网,并不改变该层TIN构网所拟合的地形表面。

      4) 分块TIN地形编码输出。按照从左至右、由下及上的顺序,遍历所有TIN瓦片块,采用金字塔常用的层行列编码方式作为瓦片关键字,对切割后的TIN块进行编码输出。同时,将每个块虚顶点及虚三角形结构从当前构网中移除,转步骤2继续下一层数据的TIN构网。循环以上过程,直到待插入点的误差小于金字塔最底层的Zmax为止。

      其中,TIN构网分割的具体过程如图 2所示。首先,对处于构网区域内的各网格角点将其插入当前构网,如图 2(a)2(b)的红色圆点所示。由于金字塔的分块网格角点已经插入到构网中,这样就可以利用三角网快速穿行算法,由一个角点向相邻角点穿行并检查被穿越的三角形,从而快速求得与各三角形边的交点,如图 2(c)的白色圆点所示。这些交点将被作为虚顶点加入到局部构网中,而由两相邻虚顶点构成的边将被作为约束Delaunay边存在。所谓虚顶点即为在TIN瓦片的分块边界上人为添加的附属顶点,而非实际简化时得到的地形关键点。通过添加虚顶点实现虚拟分割,可使得分块TIN地形具有规则矩形边界,生成以瓦片块为单位的独立构网,从而利于分布式存储。同时,规则矩形边界既便于场景裁剪,又易于与瓦片影像融合生成纹理地形,也能与已有的栅格地形瓦片实现混合模式渲染。

      图  2  基于虚拟节点的TIN构网分割过程

      Figure 2.  Partition TIN Mesh into Tiles Based on Virtual Node (VN) Structure

    • 在1.1节TIN地形金字塔的自动构建过程步骤4中,对不同层的TIN构网分割分块后,需要进行编码输出。当创建TIN地形块后,一个TIN地形块的虚拟节点结构如图 3所示。由于角点和虚边会被相邻的地形块共享,为了不产生冗余存储及便于可视化时的裁剪调度,本文根据所设计的TIN地形块几何结构,将一个完整的TIN地形块数据分别存储在角点、虚边以及块主体结构中。其中,角点和虚边结构主要存储相应的顶点坐标信息,块主体存储内容相对较复杂,如表 1所示。

      图  3  分块TIN地形的数据存储结构及组织

      Figure 3.  Storage and Organization of TIN Tiles

      表 1  TIN地形块的块主体数据存储结构

      Table 1.  Storage Structure of the Tile Body Entity

      存储项 变量名 变量类型 说明
      块的最大高程 dHeightMax double 实时绘制时用于块的包围盒等计算
      块的最小高程 dHeightMin double 同上
      内部点个数 nNumInnerPnts int
      内部三角形个数 nNumInnerTris int
      虚三角形个数 nGhostTris int
      内部点坐标列表 dInnerPntCoord double 每个内部点的(x, y, z)坐标
      内部三角形索引列表 nInnerTriIndex WORD 每个内部三角形的三个顶点索引
      虚三角形索引列表 nGhostTriIndex WORD 每个虚三角形的三个顶点索引
      接边信息编码 下文详述 用于实时渲染时的地形裂缝消除
      扩展项

      同时,为了避免角点和虚边在不同的相邻块中重复输出,本文对块中的各角点及虚边沿逆时针序进行了编号(如图 3(a)所示),并在每个块输出时只输出其0号角点,0号虚边和1号虚边数据。而0号角点,0号虚边和1号虚边输出时的索引关键字则通过块主体关键字后缀字符“0”,“1”和“2”生成。在场景数据装载时,分别以相应的关键字去网络或本地缓存请求各结构数据即可。

      这里还需要强调一点,由于TIN构网分块后,其顶点索引仍然是全局的,因而在每个块输出前,本文对其各顶点关联一个局部索引,生成以块为单位的独立三角网。该局部索引的关联处理,首先从内部点开始,继而沿块边界按照前文约定的角点和虚边编号次序,以逆时针序进行。对图 3(a)实施顶点局部索引关联值将得到图 3(b)所示结果。在可视化时,将分布在TIN地形块不同结构里的顶点数据遵循索引关联处理时的次序装配到一个顶点数组中,便可得到与输出时一致的索引值,从而还原该块构网。

    • 对于TIN地形模型的接边而言,由于其块边缘的顶点分布是极不规则的,上下级地形块的网格之间没有固定的分裂关系,因而在渲染阶段实时计算开销较大。针对此,本文提出了一种基于编解码方案的TIN地形裂缝实时消除方法。在离线构建海陆地形TIN金字塔时,预先计算分裂信息并编码存储。根据1.2节中虚拟节点结构的相关约定,结合图 4,该编码过程思路如下。

      图  4  TIN地形接边处理

      Figure 4.  Matching the Triangulation of Different Resolutions

      1) 确定邻接边。以L(0)边界为起始,沿逆时针方向遍历地形块各边界,每遍历到一侧边界,根据当前地形块在全球四叉树中的位置确定与其相邻的高级块边界,转步骤(2)。

      2) 计算边界三角形分裂信息。首先,对低级块边界,沿逆时针方向遍历各虚三角形,利用各虚三角形边界边的两端点与对侧高级块边界顶点做x(纬向边界)或y值(经向边界)的比较,并依次记录各虚三角形中的内部点及位于其边界边两端点之间的高级块边界顶点(这里称为待追加顶点),即得该边界的向下分裂信息。以图 4的情形为例,虚三角形T1的分裂信息为T1{I1, v1, v2},依此类推可得该侧边界完整的分裂信息。在处理完低级块该侧边界后,对相关的高级块边界,利用同样的操作,计算其分裂信息并记录,转步骤(3)。

      3) 分裂信息编码存储。将由步骤(2)得到的分裂信息进行编码存储,低级块的编码作为该侧边界的向下接边信息项存入其块主体结构数据中,而高级块编码则作为向上接边信息项存于其块主体结构数据中,转步骤(2)继续处理下一边界,直至所有边界处理完毕。在编码时,每一个虚三角形的分裂信息,其码段主要由两部分构成,内侧点的索引号和待追加顶点数。如在图 4中,对于T1的分裂信息T1{I1, v1, v2},将其转换成编码即为52。以此类推,可以得到图 4的低级块L(2)边界完整的分裂信息编码为527 263。

      以上所述的分裂信息编码是一种高效紧凑型的编码。在实时可视化时,这种紧凑型的编码主要是通过增量取值实现解码和块边缘三角形分裂。同样以图 4情形为例,对于低级块的L(2)边界,读入其分裂信息527 263,解码52,根据索引号5,可以取得顶点I1,根据待追加点数2,从对侧高级虚边结构数据中,取其最后两点(由于顶点在虚边结构数据中是按逆时针顺序存储的)即为v1v2,追加到低级块中,可分裂出三角形(I1, C1, v1)、(I1, v1, v2)及(I1, v2, V1)。当解码72中的待追加点2时,增量取值,即取对侧高级虚边结构数据得倒数第3点,第4点。这里没有第4点,则角点代替,追加到低级块中,可实施虚三角形T2的分裂。继续解码,可实现该侧边界余下虚三角形的分裂,最终达到实时裂缝消除的目的。

    • 本文以武汉大学测绘遥感信息工程国家重点实验室开发的VirtualWorld 1.0三维可视化平台为原型系统,利用WorldDEM提供的澳大利亚南海岸0.000 111 111°(约12 m)空间分辨率的DEM数据进行了相关实验。数据覆盖区域约3 600 km2图 5为其中一层TIN的简化构网结果及对应的空间划分。图 6为利用离线构建的TIN地形金字塔对多分辨率海陆TIN地形场景进行框线模式渲染的结果。从图 6中可以看出,采用本文基于TIN的多尺度海陆地形建模方法,对于平坦海面的表达,每个块的渲染网格只需由块的4个虚拟角点构成的两个三角形面片即可。而在海陆交接处的海面,则由地形块中处于海面的虚拟角点与表达海岸线的地形顶点进行虚拟构网即可表达。

      图  5  某一层的TIN构网结果及其空间子划分

      Figure 5.  Triangulation Result at a Certain Level

      图  6  海陆TIN地形场景框线模式可视化效果

      Figure 6.  Render Land-Sea Surface with TIN Wireframe

      为了进一步论证本文方法的优越性,本文利用框线模式,对基于TIN模式的海陆地形渲染结果与传统基于Grid模式的海陆地形渲染结果进行了对比,如图 7所示。从对比的视觉效果上可以看出,在Grid渲染的结果中,岛礁地貌已经难以辨识,而海岸地貌则被严重平滑扭曲,地形的碎部特征已经损失殆尽,并且密集的三角形用于海面的渲染造成了极大的几何冗余。而在本文基于TIN渲染的结果中,岛礁形态清晰可见,海岸地形的结构特征也得到了较好的表达,并且能够有效减少海面表达的几何冗余。

      图  7  两种模式绘制的海陆地形结果对比

      Figure 7.  Rendering Effect Comparison of Two Methods

      以四级金字塔为例,本文同时对两种模式在不同层次级别需要渲染的顶点数和三角形数进行了对比,结果如表 2所示。从表中可以看出,在每一个级别(层),利用本文基于TIN的绘制方法,其所需要渲染顶点数和三角形数都明显少于基于Grid的绘制方法。

      表 2  TIN与Grid模式性能对比

      Table 2.  Comparison of Two Methods

      层次/103 模式 1 2 3 4
      顶点数 TIN 2.3 9.2 32.3 120.4
      Grid 54.4 108.9 217.8 435.6
      三角形数 TIN 4.4 18.1 63.8 239.4
      Grid 102.4 204.8 409.6 819.2

      图 8为多分辨率海陆TIN地形场景框线模式叠加纹理模式的可视化效果。基于本文虚拟分割得到具有规则边缘的TIN地形块,可以与瓦片影像融合生成纹理TIN地形,逼真地再现海陆的真实地理环境。

      图  8  海陆TIN地形场景纹理叠加框线模式效果

      Figure 8.  TIN Wireframe and Image Data Blended Together

    • 本文针对传统基于Grid模式绘制海陆地形的缺陷,提出了一种面向虚拟地球的海陆地形多尺度TIN自动构建和可视化方法,研究了多尺度海陆TIN地形的空间数据组织模型,实现了多尺度海陆TIN地形的金字塔构建、虚拟分块及高效存储,并通过一种接边关系编解码方案消除TIN地形实时渲染时的裂缝,最终在虚拟地球中实现了基于TIN模式的海陆地形高效可视化。结果表明,利用本文基于TIN的多尺度海陆地形建模和可视化方法,不仅极大地减少了海面渲染的几何冗余,同时还能达到海岸、岛礁地形的高保真度表达,为海洋环境的精细仿真创造了条件。本文方法对于LiDAR获取的海陆地形观测数据也是适用的,同时还可以进一步拓展到海底地貌的建模和三维可视化。

参考文献 (23)

目录

    /

    返回文章
    返回