三维地形漫游系统的OPENGL实现

上传人:pu****.1 文档编号:548956220 上传时间:2022-09-16 格式:DOCX 页数:12 大小:381.82KB
返回 下载 相关 举报
三维地形漫游系统的OPENGL实现_第1页
第1页 / 共12页
三维地形漫游系统的OPENGL实现_第2页
第2页 / 共12页
三维地形漫游系统的OPENGL实现_第3页
第3页 / 共12页
三维地形漫游系统的OPENGL实现_第4页
第4页 / 共12页
三维地形漫游系统的OPENGL实现_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《三维地形漫游系统的OPENGL实现》由会员分享,可在线阅读,更多相关《三维地形漫游系统的OPENGL实现(12页珍藏版)》请在金锄头文库上搜索。

1、OPENGL实现引言21 地形可视化的概念:22 三维地形的生成技术:32 1基于真实数据的地形生成33 2基于分形技术的地形生成34 3Diamond-Square算法:43 基于OpenGL的地形渲染:53.1 :OpenGL的基本操作64 三维地形的简化技术:74.1 四叉树的LOD简化算法74.2 自适应实时网格优化算法(ROAM)95 三维地形的漫游系统:1051各个类之间的类视图,如图所示:105.2各个类的具体实现:115.21数据采集和处理115.2.2Lod类,封装LOD技术115.3系统实现12引言本系统是基于OpenGL的三维地形漫游,系统主要包括三个方面:地形数据的采集

2、与计算,由于本系统是采用随机中点位移法得到地形高度图数据。采用Diamond一Square算法得到原始数据。地形渲染,采用基于OpenGL的环境,在地形中加入光照,雾,天空,以及纹理等效果对地形进行模拟,使其更接近真实。采用LOD技术对地形进行简化和管理。1地形可视化的概念:地理信息系统技术从60年代以来,经过40多年的发展,现逐步向三维化、可视化和网络化等方面发展,GIS软件平台不断推陈出新。传统的2D-GIS软件通过矢量或栅格的方法完成二维地表的成图和分析,多年来,一直用二维地图产品表示三维地物,包括地质图、横断面图、示意图以及专门的几何结构图如立体网等。但在某些领域,人们需要分析具有三维

3、坐标的地表面以下的状况,这种空间关系时常为判断和评价矿产资源、石油资源和污染状况提供重要的信息。因此人们在2D-GIS软件的基础上研究和开发了一些适合实际需要的3D-GIS产品。“数字地球”强调对地球的真三维的描述,中国政府将“数字地球”列为21世纪的战略目标之一,使得3D-GIS的理论研究和软件开发又掀起了一次高峰。所有的GIS系统都带有包括空间数据、拓扑关系及属性数据在内的地理数据库,或者能与外部数据库管理系统直接进行连接。GIS所处理的空间数据按其处理方式不同,可分为:栅格数据、2D拓扑矢量数据、数字高程模型(DEM)、三角形不规则网格(TIN)、三维模型、时间模型等,而所有这些都是以2

4、D或2.5D(准三维)为主的。2D-GIS用点、线和面来表示地理实体,许多3D地理实体被简化为2D形式,得到的是二维地图、图像产品,其分析功能也是在二维基础上进行的。2.5D或称准3D意思是它不具备真正的Z坐标,而是将Z值作为某一位置上的属性变量,它并不是空间坐标值。在真3D-GIS中,可用表达式a=f(x,y,z)来表示,a为点(x,y,z)对应的属性值,z是独立于x,y的自变量,即三维空间中的z坐标值。3D-GIS具有连续的数据结构和与之相应的分析功能,由此带来的好处是可以从空间的角度分析和显示物体。地形的可视化是一门以研究数字地面模型(DigitalTerrainModel,DTM)或数

5、字高程域(DigitalHeightField)的显示、简化、仿真为内容的学科,它属于计算机图形学的一个分支。除了计算机图形学之外,计算几何也是它的重要基础知识。它的应用涉及地理信息系统(GIS)、虚拟现实(VR)技术、战场环境仿真、娱乐与游戏、飞行穿越(Flythrough)、土地管理与利用、气象数据的可视化等各个领域。常用的地形可视化方法大致有写景法、等高线法、分层设色法、晕渲法、拍摄实地景观照片、建立三维几何相似的实物模型、产生三维线框透视投影图和逼真地形显示等多种方法。随着光栅图形显示硬件的发展,以真实感图形为代表的光栅图形技术日益成为计算机图形发展的主流,基于计算机图形学理论的三维地

6、形逼真显示逐渐成为地形可视化发展的主流。产生逼真地形显示的方法主要有两种:一是将航空像片或卫星影像数据映射到数字地面模型上,另一种是基于分形模型的地面模拟。随着计算机视觉、科学计算可视化、遥感技术、计算机图形学等相关学科的发展,由航空航天摄影测量获取的地形数据来生成具有高度细节层次的三维地形模型已经十分普遍。这些由上百万或者更多的三角形面片表示的各种地形模型,满足了人们对地形真实性所提出的越来越高的要求,但由于这些数据很少从绘制效率方面考虑进行优化,因此对计算机性能又提出了新的挑战。2三维地形的生成技术:21基于真实数据的地形生成根据真实地形数据进行地形生成是实际工作中使用最多的一类,目前大多

7、采用数字地面模型(DigitalTerrainModel,DTM)来生成,DTM数据由在规则网格地形图上采样所得的高程值构成,与飞机或卫星上所拍摄的遥感纹理图像数据相对应,这些纹理图像在重构地形表面时被映射到相应的部位。简单的地形渲染算法,是将相邻的4个网格点定义的DTM单元变换成2个三维空间的三角形,然后将视锥体内部区域的所有这样的三角形送入图形流水线进行绘制。这种算法还可将图像纹理数据以它的最高分辨率映射到对应的多边形上,但这是一个效率很低的方法,因为在一般情况下,三角形和遥感图像纹理像素的数量非常大,而每一个独立的三角形投影到图像空间后则很小,并且很多纹理像素可能被压缩到一个图像像素中,

8、以至于对图像的影响可以忽略不计。因此,如果用DTM直接生成地形,即使在高性能的图形硬件平台上,要进行实时渲染,也几乎是不可能的,通常要对DTM数据进行一定的简化。地形简化方法将在下一章进行详细介绍。22基于分形技术的地形生成二十世纪七十年代美籍法国数学家Mnedelbot为研究自然界中复杂极不规则的几何现象创立了分形几何学34,此后,分形理论得到了广泛关注和蓬勃发展。分形(factal)的两个重要特征是自相似性和分数维。现在,随着计算机图形图像处理技术的发展应用,用分形几何来表达千差万别的自然现象产生了许多传统方法无法达到的美妙结果。而基于分形原理来研究地形场景(包括地形表面、地形纹理、蓝天白

9、云、地貌植被等)的生成和多分辨率表达是分形几何极为重要的应用领域,也是三维地形可视化的一个重要l”l8119。国内外一些学者从不同的角度、不同的侧面进行了持续而深入方面究,但普遍而言缺乏系统性、比较性、实践性。英国植物学家Brwon在1827年注意到浮在液面上的微粒极不规则的运动,空气中的烟尘粒子也具有相似的现象,后来解释为由液体的分子撞击所引起,称这一现象为布朗运动。假设一个随机过程X(t)是实变量t的函数,对每一个给定的时刻t,X(t)是一个随机变量,则两个时刻的函数差:x(I2)X(t!)(6一l)也是一个随机变量,称为“函数增量”。因此,对这个增量的描述通常要随机变量的统计特征来表示。

10、在自然界中呈现出来的许多现象大多数服从高斯分布,他们的均方增量正比于时间差,这一正比关系说明了时间问隔越大,x(t2)和x,)相差越大,相关性越小。记t1=t0,t2=t0+At,当At扩大r倍时可表示为以下关系:12X。)0c|4|、vr这意味着当t扩大r倍时,函数增量减少1/Mr倍后,与(X(t0+rAt)-x(t0)具有统计自相似性。为了讨论方便,当t0=0时,令x(t0)=0,时间间隔变量r表示,则:X(r)8,rX(rr);关系式中的和函数值在不同尺度比例下保持不变,这种比例关系称“非一致比例变换”,这种性质称为“自放射形”。分布性布朗运动从随即分形生成逼真景物的数学模型,他能有效的

11、表达自然界中许多非线形现象,也是迄今为止能够描述真实地形的最好随即过程。他是布朗运动的一个推广。其生成算法是:基于随机分形的地形生成技术将分形几何与FMB相结合,常采用的方法有泊淞阶跃法(poissonfaulting)、傅立叶滤波法(fourierfiltersng)、中点位移法(midpointdisplaeement)、逐次随机增加法(Sucoessiverandomadditions和带限噪声积累法(summingbandlimit。dnoises)等五类。其中,随机中点位移法是最简单和经典的方法,是对FBM的直接应用。一维随机中点位移法的思想是:针对一己知端点高程(或属性)的线段,其

12、线段中点的高程(或属性)为其两端点高程(或属性)的平均值再加一随机位移量,位移后的两线段再进行上述中点细分并位移,递归知道满足所需要的分辨率为止。将其推广到二维,依据表面构网方式的不同,其模拟可分为三角形格网模拟法、矩形(正方形)格网模拟法、钻石方块格网模拟法、参数方块格网模拟法等方法,其实现思想与一维类似。下面以正方形格网为例,着重研究二维随机中点位移法的实现过程。2.3Diamond一Square算法:二维随机重点位移法实现的方案很多,难点是需要消除曲面生成过程中可能产生的裂缝和皱折,Diamond-Square算法是三维分形地形生成的经典算法。(a)(b)(c)(d)(e)1根据二维分形

13、布朗运动思想,首先构造一个维数是2的空二维数组,可以把这个数组看成是一个正方形,然后将四个角的高程初始化为相同的值。如(a)中的方形黑点。2Diamond过程取正方形的四个顶点,在其中点位置(两对角线交点)生成一个随机值,这一随机值是通过平均四个顶点的值再加上一个随机量而生成的。这样用直线连接每四个点就形成一个棱锥。如图6.1(b)所示,新的点显示为方形黑点,已经存在的值显示为圆形黑点。3Square过程在正方形每条边的中点上,即每四个点形成的棱锥的中心位置生成一个随机值,它是通过平均棱锥的四个顶点值再加上与Diamnod过程相同的随机值而生成。这样在原来正方形的基础上又生成了一系列正方形。如

14、图C所示,新的点显示为方形黑点,己经存在的值显示为圆形黑点。4重复迭代2、3两个步骤,最终把先前建立的二维数组填充满,从而获得了生成三维分形地形所需要的高度值。如图(d)和(e)所示。这样,如果己经生成了一个种子正方形并经过单独一次细分过程将得到四个正方形,第二次经过该过程得到16个方形,增长的很快,方形数目等于2的(2+i)次方,其中i为递归经过细分过程的次数。5算法的伪代码:当正方形(Suqare)i长大于K(K是常数,一般取2的幕,其大小决定了迭代次数的多少)时遍历数组,对每个正方形表达执行Diamond步;遍历数组,对每个棱形表达执行Square步;减小随机数范围;3基于OpenGL的

15、地形渲染:OpenGL即开放性图形库(OpenGraphicLibrary),是由SGI开发的一套高性能图形软件处理系统,是图形硬件的软件界面21。OpenGL作为一个性能优越的图形应用程序设计界面(API),适用于广泛的计算机环境。从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。3.1:OpenGL的基本操作OpenGL把所有的几何图形单元都用顶点来描述,运算器针对每个顶点进行计算和操作,进行光栅化形成图形碎片;对于像素数据,将结果存储在纹理组装用的内存中,几何顶点操作一样光栅化形成图形片元。最后,图形片元都要进行一系列的逐个片元操作,最后的像素值被送入帧缓冲器实现图形的显示。OpenGL的工作原理主要有以下几个步骤:1 .构造几何要素(点、线、面、位图),创建对象的数学描述。2 .计算模型的颜色,确定光照、纹理等。3 .光栅化操作,将对象的数学描述和颜色信息转化到屏幕的像素。OpenGL整个流程如图2.2所示:在真实世界里,所有物体都是三维的。但是,这些三维物体在计算机中却必须以二维平面物体的形式表现出来。这些物体从三维变换到二维是采用相机(Camera鹿拟的方式,如图2.2所示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号