海南gis技术_三维渲染应用
发布日期:2021-08-07 浏览次数:632

2.2GIS三维空间数据模型
2.2.1空间数据模型分类
三维数据结构同二维一样也存在栅格和矢量两种形式。栅格结构使用空间索引系统,将地理实体的三维空间分成细小单元(体元)。三维矢量数据结构表示方法有很多,将实体抽象为点、线、面、体,由面构成体。其中运用最为普遍的是具有拓扑关系得三维边界表示法和八叉树表示法。根据三维空间模型对地学空间目标的集合特性的描述是以表面描述方式还是以空间剖分方式,可以分为体元模型和面元模型。
(1)体元模型
常用的体模型是将三维空间对象视为体单元的集合。体单元是简单的三维基本单元,如立方体、球、圆柱体等。将三维空间对象视为这些基本对象经过一些基本操作(如交、并、差等)后的组合体。体模型数据结构包括三维栅格结构、八叉树结构、结构实体几何模型和四面体格网模型[23]。对于建筑物,本文不关注其中的拓扑结构,仅对其整体和外部形状感兴趣,综合考虑到建筑物的形状特点、3D建模的精度要求,如果用Octree建模则难以保证精度,用TEN建模则会增加许多无意义的数据,因此CSG是进行建筑物建模的一个较好选择,本文重点讲述结构实体几何模型(CSG)。结构实体几何模型(CSG)类似于机械制造方法,最早由Voelcker和Requicha提出,是将简单的几何形体(如球、圆柱、圆锥等体素)通过正则运算(交、并、差)来构造复杂的3D目标。一个复杂目标可以描述为一棵CSG树,这棵树的终端结点为基本体素(如立方体、圆柱、圆锥),而中间结点(枝节点)为正则集合运算的结点。
CSG树以根节点作为查询和操作的基本单元,它对应一个三维空间目标。一个复杂的空间形体,可以由一些比较简单,规则的空间形体经过布尔运算而得到。
CSG模型的优点是:方法简单,适合对复杂目标采用分治算法;具有唯一性和明确性;没有冗余信息,必要时可以在目标和体素上附加有关属性。其缺点是:一个3D空间目标的CSG是不唯一的,且不描述点、边、环、面的拓扑关系。
(2)面元模型
面模型数据结构主要包括规则格网模型Grid、不规则三角网TIN和边界表示模型B-Rep。
规则格网模型Grid用一组大小相同的网格描述地形表面。它能充分表现高程的细节变化,拓扑关系简单,算法容易实现,空间操作及存储方便。但占用的存储空间较大,不规则的地面特征与规则的数据表示之间可能不协调,在地形平坦的地方存在大量的数据冗余。
不规则三角网(TIN)是由分散的地形点按照一定的规则构成的一系列不相交的三角形,三角面的形状和大小取决于不规则分布的观测点的密度和位置。TIN实现三维地形的显示过程就是确定哪三个点构成一个最佳三角形,并使每个离散点都成为三角形的顶点。TIN的优点是存储效率高,数据结构简单,与不规则的地面特征和谐一致,可以表示细微特征或叠加任意形状的区域边界。当表面粗糙或变化剧烈时,TIN能包含大量的数据点,而当表面相对单一时,在同样大小的区域,TIN只需少量的数据点。TIN比Grid复杂,它不仅要存储每个点的属性数据,还要存储其平面坐标、节点连接的拓扑关系,难以与矢量和栅格数据结构进行联合分析。
边界表示模型(B-Rep)是以物体边界为基础来描述几何形状,一般采用矢量法表达三维目标,与二维GIS所采用的矢量结构在原理上一致。每个物体均由有限个面构成,每个面由有限条边围成,而每条边由构成边的顶点表示。在边界表示法中,空间实体的几何信息和拓扑信息是分开存储的,其数据结构可以用体表、面表、弧表、边表、顶点表等五个层次来描述,因此在进行坐标变换时,仅需改变空间点的坐标,空间实体间的拓扑关系可以保持不变。B-Rep模型强调3D空间目标的外部细节,通过3D目标属性表、面-体关系表、边-点-面关系表和点坐标表来详细记录构成3D空间目标的所有几何信息和拓扑信息。其优点为:几何信息与拓扑信息分开存储,完整清晰;便于基于面、边的空间查询与计算;易于与2D图形、3D线框模型、有限元网格剖分及3D曲面造型接口。其缺点是:数据量大,数据关系复杂;对3D空间目标的整体描述能力差,不能反映目标的构造过程;不能记录目标组成元素的原始特征。

基于三维GIS技术的动态LOD渲染方法的实验及验证
针对透视投影下现有矢量地图动态LOD渲染方法存在的不足,本文从渲染的客观需求出发使用梯形格网统一了简化与剖分的过程,并研究了透视投影下梯形格网的简化算法。之后,分析了地图简化的影响因素,最终,针对GPU的渲染流程提出了一种基于三维GIS梯形格网的矢量地图动态LOD渲染方法。在此基础上,设计可视化平台的渲染引擎以实现地图渲染,并设计典型的实验案例验证本文方法的可行性与适用性。
1. 可视化平台的框架结构
本文设计的可视化平台主要包括地图组织模块、地图操作模块和渲染执行模块三大子模块。以地理数据、符号库和样式数据确定地图渲染样式。地图数据以图层样式和地理数据进行组织,针对矢量地图的渲染需求设计地图渲染模块,同时添加地图操作模块用以支持用户操作。可视化平台的框架结构
(1)地图组织模块
地图组织模块用以对可视化平台进行全局组织,包含图层类、数据源类、渲染类和地图类。数据源类包含顶点几何数据和顶点索引数据,在数据源类进行构建梯形格网并添加空间索引,用户操作时,依据地图区域检索相应数据,交给渲染模块进行渲染。图层类包含图层ID、图层可见比例范围、图层颜色、图层透明度等相关属性,每一个图层类对应一个渲染模块中的图层渲染类,针对图层属性设置着色器程序完成对地图的渲染。
(2)地图操作模块
地图操作模块用以实现用户对地图的基本操作。地图操作模块提供了诸多接口包含获取地图数据,设置地图属性如:俯仰角度、旋转角度、地图级别、地图中心点等;通过地图操作模块用户可以进行诸如平移、旋转、缩放、俯仰等地图操作。
(3)渲染执行模块
渲染执行模块用以执行地图的渲染,在渲染执行模块完成顶点数据的组织与传输,显存中EBO数据的更新,地图符号化渲染等操作。渲染执行模块采用OpenGL 3.0接口,实现了对梯形格网线,面的纯色填充。首先,通过仿射矩阵实现了地理坐标到屏幕坐标的仿射变换,针对图层类设计相应图层渲染类,针对图层样式设计相应的着色器程序完成地图绘制。