基于LOD的海量DEM三维模型实时可视化 研究.docx

上传人:b****3 文档编号:5515879 上传时间:2022-12-18 格式:DOCX 页数:28 大小:2.19MB
下载 相关 举报
基于LOD的海量DEM三维模型实时可视化 研究.docx_第1页
第1页 / 共28页
基于LOD的海量DEM三维模型实时可视化 研究.docx_第2页
第2页 / 共28页
基于LOD的海量DEM三维模型实时可视化 研究.docx_第3页
第3页 / 共28页
基于LOD的海量DEM三维模型实时可视化 研究.docx_第4页
第4页 / 共28页
基于LOD的海量DEM三维模型实时可视化 研究.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于LOD的海量DEM三维模型实时可视化 研究.docx

《基于LOD的海量DEM三维模型实时可视化 研究.docx》由会员分享,可在线阅读,更多相关《基于LOD的海量DEM三维模型实时可视化 研究.docx(28页珍藏版)》请在冰豆网上搜索。

基于LOD的海量DEM三维模型实时可视化 研究.docx

基于LOD的海量DEM三维模型实时可视化研究

学号:

2010302590046

密级:

 

武汉大学本科毕业论文

 

基于LOD的海量DEM三维模型实时可视化

研究

 

院(系)名称:

遥感信息工程学院

专业名称:

遥感科学与技术

学生姓名:

陶志鹏

指导教师:

袁修孝教授

 

二〇一四年五月

 

BACHELOR'SDEGREETHESIS

OFWUHANUNIVERSITY

 

ResearchonReal-timeVisualization

of3DDEMModelBasedonLOD

 

College:

SchoolofRemoteSensingandInformationEngineering

Subject:

ScienceandTechnologyofRemoteSensing

Name:

ZhipengTao

Directedby:

ProfessorXiuxiaoYuan

 

May2014

郑重申明

 

本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。

尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。

对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。

本学位论文的知识产权归属于培养单位。

 

本人签名:

日期:

 

摘要

虚拟现实技术已经广泛应用到三维GIS、战场模拟和游戏仿真中,随着计算机性能的不断提升,海量DEM数据的实时漫游成为现实,但是在过于庞大的地形高程数据中,不可避免的要建立合适的索引结构。

本文提出了一种通过建立线性四叉树来组织DEM数据的方法,可以更快的修补LOD产生的裂缝,同时提出了一种对额外点数据特征诸如颜色、法向量保存的方法。

配合OpenGL渲染引擎,在添加高程色标和光照的情况下,可实现高分辨率DEM地形数据的实时漫游。

 

关键词:

LOD;线性四叉树;OpenGL;裂缝修补;法向量;

 

ABSTRACT

Virtualrealitytechnologyhasbeenwidelyappliedtothree-dimensionalGIS,battlefieldsimulationandgamesimulationapplications.Withthecontinuousdevelopmentandtheimprovementofcomputerperformance,real-timemassiveDEMdataroaminghasbecomeareality.However,duetothetoolargeterrainelevationdata,itisinevitabletoestablishanappropriateindexstructure.Thispaperproposesamethodbyestablishinglinearquad-treetoorganizeDEMdata,whichcanhelptorepaircracksonLODfaster,andalsoproposesamethodforadditionaldatasuchaspointcolors,normalvectorstosaveintotheLODnodes.WiththehelpofOpenGLrenderingengine,real-timeroamingoflargeresolutionDEMterraindatahasbeenachievedwithadditionalfeaturesdisplayedsuchaslightingandevaluationcolor.

Keywords:

LOD;Linearquad-tree;OpenGL;CrackRepair;Normal.

 

目录

第1章绪论4

1.1研究目的和意义4

1.2国内外研究现状6

1.3本文主要研究内容6

第2章OpenGL图形接口和用户交互方法9

2.1OpenGL简介9

2.2OpenGL功能9

2.3OpenGL扩展——glut和glew10

2.4视图变换11

2.4.1DEM空间点的转换11

2.4.2视景体的裁剪13

2.5光线和法向量13

2.6OpenGL与用户交互15

第3章基于线性四叉树的LOD模型17

3.1LOD基本思想17

3.2线性四叉树的结构设计19

3.3视景体外点块的剔除22

3.4LOD裂缝修补22

3.5颜色和法向量等状态数据的存储管理26

第4章实验与结果分析28

第5章结论和展望31

参考文献32

致谢34

第1章绪论

1.1研究目的和意义

地形分析是用直接可以观测到的地貌和外力过程,演绎推断不能直接观察到的地壳运动的进程和发展的方法。

随着科技发展,GIS以其强大的地理空间信息处理的优势,在全球变化与监测、资源管理、城市规划、环境研究、农作物估产、灾害预测、军事、矿产资源评价、文物保护以及政府部门等许多领域发挥着越来越重要的作用。

地形分析功能在GIS中的也逐渐占有着越来越重要的地位。

长期以来,人们根据不同的应用目的,依靠各种数据结构、算法和数学相关的理论,在当今的计算机发展状况下建立了许多三维地形可视化的模型算法。

由于三维可视化模型有着广阔的应用背景,对实时地形可视化的实现方法受到了广泛的关注。

国内外学者在地形可视化方面的研究主要集中在数字地形建模、地形模型的简化、地形的多细节模型、地形的真实性表达以及地形重构等几个方面[1]。

地形图所描绘的方法是以二维空间的方式对客观存在的丰富的三维地形特征诸如等高线、分层设色等方式对其进行特征映射,这种利用二维介质绘制的平面图与其所表示的三维真实世界要素之间存在一定的差距。

实际上,在可视化程度方面,相比传统的纸质地图,电子地图中的二维地理要素并没有得到根本性的改善,所以,人们一直在努力实现地理信息要素的三维可视化。

近几十年来,借助计算机图形学和相关理论,已经可以绘制出具有高度真实性和可测量性的三维地形模型,从而实现三维地形表面的逼真还原。

迄今为止,三维地形的实时可视化技术主要分成两种[2],一种是面绘制技术,另一种是体绘制技术。

基于面绘制的三维地形建模技术研究的比较早,到目前为止基本上可以归纳为三类:

分形地景仿真、曲面拟合地形仿真和基于真实地形数据的多边形模拟。

分形地景仿真[3]是利用分形几何所具有的细节无限和统计自相似的典型特征,通过递归算法使复杂景物可用简单的规则来生成。

它的优点是数据量小,缺点是算法的复杂度高,且没有与实际所需的真实地形、地貌相联系,在应用上受到限制。

曲面拟合地形仿真是根据控制点选择合适的曲面对地形进行拟合,其优点是保证了相邻面的斜率连续性,缺点是曲面方程及参数不易控制,且生成地形过于光滑,真实感较差。

这种模型目前应用很少。

基于真实地形数据的多边形模拟方法是指利用真实地形的特征采样点,通过剖分、插值等方法建立多边形集合从而达到模拟地形表面的目的。

数字高程模型(DEM)表示法便是典型的也是目前基于真实采样点的三维地表模型主要表示方法,是目前人们对三维地形实时显示渲染算法进行研究的基础。

由于分形仿真和曲面拟合法均有各种限制,而基于真实地形数据的建模能通过剖分方法生成连续的多边形网格,有利于计算机绘制和数据存储管理,同时其生成的地形也具有高度的真实感,所以它便成为人们描述三维地形的主要手段。

然而,虽然多边形模拟具有线性近似的良好数学特性,并与硬件固化了的绘图方式相辅相成,但是当地形数据量大时,绘制的三角形面片数量会急剧的增加,模型就会变得极其复杂,即使是相对高端的图形工作站也不能满足实时绘制的要求。

通过提高硬件性能,实现建立海量三维地形数据显示所期望的硬件标准,是解决大规模三维地形实时渲染的重要方法,许多学者已将目光聚焦到这一领域;同时,在渲染海量三维模型中,对算法优化及数据处理方式变更显得更加快速和灵活。

目前,对于大规模三维地形的实时绘制的研究主要集中在以下三个关键技术上:

三维地形简化(压缩编码)技术、大规模地形数据的动态调度与地形简化相结合的处理技术、地形纹理数据的组织与应用技术。

在这种情况下,地形场景的实时绘制已受到人们越来越广泛的关注。

目前已经提出的一系列场景加速绘制算法,虽然在不同的应用场合也取得了一定的效果,但都存在着局限性,尚不能满足大区域地形环境的实时高速绘制的要求,而与其密切相关的技术主要涉及到地形多分辨率表示、海量地形数据和纹理数据的分页管理、地形和纹理数据的LOD控制、地形和纹理数据的快速存取和更新等。

为了能够对地形场景进行实时渲染,在对海量地形数据管理和实时绘制技术进行研究和试验的基础上,我们需要对基于地形三维可视化系统的数学模型、地形模型、数字地形分析软件及相关技术进行进一步技术优化和改进。

在国内,相关的研究、开发主要通过引进ARCINFO等产品进行地理数据的管理和地图的绘制。

此外,国内外研究学者也有一些自己独立开发的地形分析产品,具体应用于商业和军事等各部门的众多领域。

尽管它们在现代信息社会中发挥着非常重要的作用,并且其对地形三维实时可视化的能力发展异常迅猛,但毕竟还处在起步阶段,还有许多需要探索的领域。

由于当今数字地形分析的高效软件和其高效的副产品还较少,尽管计算机处理数据能力在不断提高,但是所处理的数据量也越来越大,越来越复杂,因而对于可视化地形的难度也是随着数据量而正相关增加。

不仅仅优化算法,提高算法效率一直是许多研究者努力的方向,还有很多领域如实现地形形态数字化的更真实描述、地形分析的快速精确化问题、海量数据的组织和显示实时化等都需要我们深入探索。

1.2国内外研究现状

目前,国内外已经有几种比较成功的算法。

代表之一即是层次细节算法,一种是通过以构建二叉树划分为代表的自适应网格优化[5](real-timeoptimaladaptivemeshes,ROAM)为基础,逐步衍生出来的空间四叉树、八叉数据结构;另一种是基于1976年JamesH.Clark的由简化模型构建不同分辨率模型的理念而后衍生出的连续分辨率的CLOD[6](continuousLOD),主要通过构建四叉树模型来根据当前视点和绘制点的距离定义不同分辨率模型达到实时绘制的目的。

其代表是Lindstrom等在1996年提出的一种可以使用规则格网构建地形模型从而实时对细节层次进行删减和增加的方法[7]。

该算法主要思想是:

首先构建粗略的地形模型,用来对曲面网格中的具体细节进行抽取;然后逐步分解细化,用来对数据块的顶点重新选择,最后重新网格化以便进一步简化。

以上两种方法都极大地提高了地形数据绘制的速度,并且由于观察者位置的限制,对于远处低分辨率影像的显示并不会影响观察的结果。

由于LOD算法构建的四叉树结构和DEM数据规范比较相似,且算法复杂程度较之于ROAM简单,所以通过构建四叉树来建立DEM的LOD模型是很好的选择。

但是,以上两种算法都是一次性将数据存入内存中,然后通过四叉树的结点来对数据进行绘制。

当DEM数据大到一定范围时,四叉树本身所占用的数据量就要远远大于计算机内存容量,这一算法显然不适用。

1.3本文主要研究内容

对于地形的真实感问题,由于场景比较大,通常需要一个很大的纹理来表达地形细节信息。

然而,太大的地表纹理会占用很大的计算机内存,而且在显卡一定的传输速率下,势必延长传输时间,降低整体渲染效率。

所以在纹理渲染之前,首先对DEM进行分块,得到可以接受而且方便维护的数据块之后,再进行对LOD的纹理映射。

在地形仿真处理中,DEM数据渲染对系统资源的消耗比较大,大量的细节数据诸如颜色、法向量、细节纹理都要占用纹理空间,因此如何在计算机内存中有效地组织数据存储方式,对DEM渲染最后的效果有着重要的影响。

针对目前已有算法的不足,本文研究重点在时间效率和存储空间上。

虽然传统LOD模型的算法思路在现阶段的计算机处理性能上其渲染效率已经不存在瓶颈了,但是依然不能很好的支持大数据量的显示(如超过4096×4096像素的数据规模)。

所以本文研究一方面保证了传统LOD的算法效率,另一方面保证了大数据量的可操作性,通过数据分块和OpenGL图形接口的使用,建立线性四叉树索引结构,得到一个对于空间要求不大并能保证运算效率的模型,并在此基础上对模型添加真实性地貌元素如光照、高程颜色等真实地形效果。

图1.1示意了本文的技术路线。

图1.1技术流程图

第2章OpenGL图形接口和用户交互方法

2.1OpenGL简介

OpenGL(OpenGraphicsLibrary)曾经是SGI公司为其图形工作站开发的IRISGL。

IRISGL是一个工业标准的3D图形软件接口,虽然其功能强大然而具有较差的移植性,所以OpenGL就是SGI公司在IRISGL的基础接口上开发而成。

虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL仍然是不能被取代的主角。

OpenGL是一个定义了跨编程语言、跨平台的编程接口的规格,它用于二三维图像的显示和交互。

OpenGL是个专业的图形程序接口,是一个功能强大、调用方便的底层图形库。

如今,OpenGL广泛应用于游戏、医学影像、地理信息、气象模拟等领域,是高性能图形和交互性场景处理的行业标准。

OpenGL本身设计目标就是作为一种流线型的、独立于硬件的接口,在众多不同的硬件平台(不同的显卡规格上)实现快速绘制的要求。

正因为OpenGL是图形硬件的软件接口这样的底层特性,才可以满足对于大DEM地形的海量绘制需求;也正因如此,对于LOD模型的交互操作(旋转、平移和缩放)等是由MFC来实现的。

2.2OpenGL功能

OpenGL是一个开源的三维图形软硬件交互接口,它独立于图形用户界面和操作系统,所以以它为框架开发的应用可以非常简便的实现不同平台的移植需求;本文中,OpenGL可以通过MFC的接口修改(即从DC设备上下文显示接口更改为OpenGL接口),从而实现DEM渲染的有关计算和图形算法,在保证结果正确和可靠性的基础上,由于本身属于硬件-软件交互接口,所以其绘制性能得到大幅度的提高;OpenGL使用也非常简便,它具有如下功能:

●建模:

OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体等)以及复杂曲线和曲面绘制函数(如Bezier曲面曲线函数)。

对于复杂的三维物体,通常是通过OpenGL扩展库扩展绘制的(见2.3)。

●变换:

OpenGL图形库的变换包括基本变换和投影变换。

其中平移、旋转、缩放、镜像四种变换属于基本变换;平行投影(或正射投影)和透视投影为投影变换。

其变换方法有利于减少算法的运行时间,提高三维图形的显示速度(见2.4)。

●颜色模式:

OpenGL颜色模式有两种,即RGBA模式和颜色索引模式(ColorIndex),本文采用RGBA颜色模式,因为只有RGBA模式支持光照,在DEM细节纹理的显示中,光照效果必不可少。

●光照和材质:

OpenGL光照中,一共有自发光(EmittedLight)、环境光(AmbientLight)、漫反射光(DiffuseLight)和镜面反射光(SpecularLight)4种,而材质是通过光反射率来渲染表示在场景中的。

场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。

●纹理映射(TextureMapping):

通过纹理映射,可以将不同维度的纹理数据(一般是二维位图,但也可以是一维甚至三维的纹理数据)映射到三维环境上,从而创造更加真实的三维环境效果。

●特效:

位图显示和图象增强图象功能除了基本的拷贝和像素读写外,在最后的渲染管线步骤中OpenGL还提供融合(Blending)、抗锯齿(反走样)(Antialiasing)和雾(fog)的特殊图象效果处理。

以上三条可使被仿真物更具真实感,增强图形显示的效果。

●双缓存(DoubleBuffering):

双缓存即前景缓存和背景缓存。

通过渲染和计算的分离,在渲染好背景帧之后,直接将背景帧覆盖到前景(用户显示界面)中,从而减少屏幕闪烁的效果。

简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。

2.3OpenGL扩展——glut和glew

OpenGL也同其他语言/框架一样,拥有自己的扩展功能,其中glut和glew均为其衍生的扩展功能组件,旨在帮助程序员更加方便的运用一些已经封装好的底层调用接口。

由于OpenGL只是一个标准,真正的代码实现方并不是OpenGL组织本身,而是各大显卡制造商,所以对于OpenGL标准规范的支持不同也就造成了某些扩展在不同的显卡下并不能完美的支持,然而大多数应用广泛的扩展都是在OpenGL的基础上用标准C开发的,所以对兼容性的要求并不高。

GLUT(OpenGLUtilityToolkit),代表OpenGL应用工具包,是一个和窗口系统无关的软件包,它由MarkKilgard在SGI时写的。

作为AUX库的功能更强大的替代品,用于隐藏不同窗口系统API的复杂性。

GLUT是专为构建中小型OpenGL程序。

虽然GLUT是适合学习OpenGL和开发简单的OpenGL应用程序。

GLUT并不是一个功能全面的工具包所以大型应用程序需要复杂的用户界面最好使用本机窗口系统工具包。

GLEW(TheOpenGLExtensionWranglerLibrary)也是OpenGL扩展包组件,由C/C++开源语言编写的跨平台组件读取库,它提供了一个能够实时判定不同目标平台的不同支持OpenGL组件的方法。

其OpenGL核心文件和扩展功能写在单一的头文件中,成为不同OpenGL插件检测兼容性交互的枢纽。

目前,GLEW组件在不同的操作系统平台上(Windows、Linux、MacOSX、FreeBSD、Irix和Solaris)都可以运行。

本文通过glew绘制高程色标条,可以通过glWindowPos*()函数直接定位栅格坐标系于屏幕的像素坐标系下,即跳过矩阵操作,从而实现直接绘制在屏幕像素坐标系上的要求,而这个功能是定义在显卡的硬件接口之上的,所以会大大提高栅格化数据(字体和位图)的渲染速度。

在glut扩展下,可以通过定义glViewPort()函数来定义视口的大小和比例。

OpenGL扩展使得部分操作可以更加简便易行且高效。

2.4视图变换

2.4.1DEM空间点的转换

DEM(DigitalElevationModel)是数字高程模型的简称。

它是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型(DigitalTerrainModel,DTM)的一个分支,其它各种地形特征值均可由此派生。

一般认为,DTM是描述包括高程在内的各种地貌因子,如坡度、坡向、坡度变化率等因子在内的线性和非线性组合的空间分布,其中DEM是单纯具有高程数据的单项数字地貌模型,其他如坡度、坡向及坡度变化率等地貌特性可在DEM的基础上派生。

由于DEM是具有X、Y和Z(高程)的三个分量数据,而信息接收者的屏幕一般都是二维坐标,在观察者不同的三维空间下,就要通过OpenGL对三维分量高程数据进行一系列的变换。

为了把一个物体的三维坐标变换为屏幕上的像素坐标(二维坐标),一般需要经过3个步骤:

●透视变换。

包括模型、视图和投影操作。

它们是由矩阵乘法表示的。

这些操作包括旋转、移动、缩放和透视投影等。

在DEM显示过程中,需要如上变换的组合变换,实现对场景的漫游。

●场景剪裁。

由于场景是在一个矩形窗口中渲染的,因此位于窗口之外的物体(或一部分)必须裁剪掉。

三维计算机图形中,裁剪就是丢弃位于裁剪平面之外的物体。

●视口变换。

经过透视变换的坐标与屏幕像素之间建立对应关系。

这个过程称为视口(Viewport)变换。

图2.1顶点变换的步骤[8]

经历了以上三个变换之后,DEM的三维坐标就可以转换成为屏幕的像素坐标显示出来(图2.1)。

在每一次对DEM的平移、缩放和旋转的过程中,都重新维护GL_MODEVIEW(视图)矩阵,这样,DEM每一个点坐标都会被重新计算得到新的二维屏幕像素坐标,从而实现对DEM数据漫游的目的。

2.4.2视景体的裁剪

在DEM数据的显示过程中,通过给定“相机”的位置和摄像方向,可以得到大概的方位,并不是每一个点都会显示在屏幕上。

OpenGL的视景体就是为了提升效率自动过滤掉在视景体之外的点,同时由于两种投影方式的不同,视景体的模型也不尽相同——正投影的视景体模型是一个长方体,而透视投影的视景体可以看成一个金字塔的平截头体(顶部被一个平行于地面的平面截除),如图2.2所示,在此视景体外的点被认为是不能显示的。

但是,传统意义上的OpenGL会对每一个点进行视景体的判别和检查。

在大数据量的情况下,对每一个点进行视景体剔除显然是不现实的。

这显得OpenGL并不那么智能,所以只能通过四叉树数据结构从大到小判断包围盒与视景体的交集,来判断此块数据是否需要进行渲染,DEM在视景体中的剪裁详细过程见3.3节。

图2.2透视投影视景体模型

2.5光线和法向量

当DEM渲染在三维空间后,需要添加光照来模拟真实地形,没有光照的三维地物在经过剪裁和投影变换映射到屏幕坐标系之后大多数情况是难以理解的,甚至同二维地物没有区别(例如一个垂直于大地平面的视角观察DEM在没有光照的情况下得到的只是一个有颜色的长方形,并不能观察到山坡或洼地类似凸起来或者凹下去的地形地貌)。

OpenGL通过模拟环境光、散射光、镜面光和发射光来模拟真实世界环境光照。

在DEM渲染环境中,主要是通过前三者来实现真实环境模拟的。

●环境光(ambientlight)是指那些在环境中进行了充分的散射,无法分辨其方向的光,它似乎来自于所有的方向;

●散射光(diffuselight)来自某个方向。

因此,如果它从正面照射表面,它看起来显得更亮一些。

反之,如果它斜着掠过表面,就显得暗一些。

但是,无论光线的方向,当它撞击表面时,都会均匀的向各个方向发射。

●镜面光(specularlight)来自一个特定的方向,并且倾向于从表面向某个特定的方向反射。

当从某特定方向照射的时候,其反射方向具有原光照相同的能量。

除了设置环境光照的相关参数,还需要为DEM的每一个点设置法向量,其代表由该点所构成的所有三角形面片单位法向量的均值,只有正确的设置了法向量,才能正确对模型应用光照效果,没有添加光照效果的模型在光照下只是变得更“亮”,而不会具有颜色上的不同,如图2.3所示。

图2.3相同模型和光照下无法向量(左)和有法向量(右)的渲染效果

物体的法向量定义了它的表面在空间中的方向。

具体地说,定义了它相对于光源的方向。

OpenGL使用法向量确定这个物体的各个顶点所接收的光照。

可以使用OpenGL的glNormal*()函数,把当前的法向量设置为这个函数所需要表示的值。

在DEM模型寻找物体的法向量过程中,因为绘制的是以结点为中心点的三角形面片(GL_TRIANGLE_FAN),所以只需要对每一个三角形平面计算一次法向量即可。

对于一个空间三角形ABC,法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1