基于三维GIS的虚拟现实数字城市实现方法研究
对于只有四面墙的平房(只有一层)的屋顶,系统考虑用尖顶,这样更符合现实。其算法为:找出四面墙相应四条边中最长的那条边,作为屋顶的檐。如图3-42所示:平面图上房屋由m1、m2、m3和m4(一般还有m5点,与m4重合)组成。则屋顶由两个四边形m1m2m1’m2’和m3m4m1’m2’,两个三角形m1m1’m4和m2m2’m3组成。其中o1m1’垂直于m1m4,同理o2m2’ 垂直于m2m3(o1和o2分别为m1m4和m2m3的中点),并设o1m1’=o2m2’=1.0,显然点m1’和m2’的坐标就出来了。两个四边形进行瓦片的纹理贴图,两个三角形采用墙面的纹理贴图(见下图)。
植被
数字测图系统生成的区域地形图中植被的表示方式有点和线(区),点一般为独立植被,线(区)一般为一片植被。
对于点,构成植被的算法为:由该点构造一个长方形,由OpenGL中的纹理贴图和混合技术(参看算法描述部分)对该长方形进行纹理贴图,最后显示的是一个树的形状,而不是一个四边形的形状。但有一点需保证树始终面向视点,才能让人感觉树不是一个面片。如图 3-44所示:m点为区域地形图中的独立植被,e为视点所在处。为了保证树始终面向视点,需em始终垂直于由点m构造的长方形x1x2x3x4。该效果由公告牌技术实现。
3-44 独立植被构成图 3-45 植被三维虚拟现实效果图
对于线(区),构成植被的算法为:SUV文件中,对于线,可以一定距离插值,构成一系列的独立植被点。对于区,这些区域大部分是不规则的,用OpenGL中绘制镶嵌多边形的函数绘制这些多边形,并赋予一定的颜色;然后在多边形中进行插值(参看算法描述部分),构成一系列的独立植被点,其三维虚拟现实效果见图1.7所示。
道路
道路,基本构成为路面和路基。SUV文件中道路有两种表示,一是线段,表示道路的中线,并赋予属性:路宽、路面材质等;二是区。
对于第一种情况,其建模算法为:如下图,地形图中道路的中线为ABCD……,由属性必需生成区域M1P1O1N1N2O2P2M2。该区域生成的过程为:M1M2垂直于AB,已知道路宽度为w,则M1A = w/2,P1P2是角ABC的角平分线。
意图
三维道路效果图
对于第二种情况,只需贴纹理即可实现三维虚拟现实。
水系
水系,基本构成为水面,大致分为河流、湖泊和池塘等地物。SUV文件中河流的表示为单线或双线,单线为线段,双线为区,其建模思想同道路。对于湖泊和池塘等水系,SUV文件中表示为区,只需贴纹理即可实现三维虚拟现实。
4 地形与地物的叠加
根据等高线生成的三维地形模型中局部地区几乎没有平面,但地物却是建立在平面上的,这样未经过处理的显示方式将导致地物与地形的脱离显示,即地物的底部与地形的表面不是有机结合在一起的。如何将地物模型与地形模型叠加在一起,是建立一体化模型的关键,这里我们根据地物模型与地形模型的关系,将地物模型划分为两大类,这两类地物性质不同,处理方法也不一样。第一类地物是独立于地形网络的地物,它们与地形网络的关系是相对位置的关系,例如建筑物、树木、车辆等。第二类地物是依赖于地形网络的地物,这类是地形网络密不可分的一部分,例如岛屿、湖泊、河流、道路等。
一、独立于地形的地物
独立于地形模型的地物与地形模型之间的关系是一种相对位置的关系。在进行地物的三维虚拟现实时,可转入修改地形模型。计算地物在平面位置上的区域,再对该区域(地形)进行整合。取地物的最低点(例对于建筑物,则为建筑物与实际地形叠加的高度)为基准点,将区域范围内的地形显示成与基准点在同一高度上。
二、依赖于地形的地物
在这里,主要描述道路与地形的叠加。目前处理的方法有:
1、将地物与地形分别处理
确定道路所在的区域;在地形三角网中,删除该区域中的三