三维地形建模技术.docx
- 文档编号:29213749
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:11
- 大小:776.56KB
三维地形建模技术.docx
《三维地形建模技术.docx》由会员分享,可在线阅读,更多相关《三维地形建模技术.docx(11页珍藏版)》请在冰豆网上搜索。
三维地形建模技术
三维地形建模技术研讨
摘要:
本文介绍了基于真实地形数据库的地形仿真、基于分形技术的地形仿真以及基于数据拟合的地形仿真的三维地形建模原理。
通过OpenGL实例,介绍了三维地形建模的实现方法。
关键词:
地形建模,分形技术,地形仿真,OpenGL
Abstract
thisarticleshowusthe3Dterrainmodelingprincipleofhavingbasedontherealterraindatabaseterrainsimulation、basedonthefractaltechnologyterrainsimulationandbasedondatafittingterrainsimulation.Itmaintellusthemethodtoachieve3DterrainmodelingthroughOpenGL.
Keyword:
terrainmodeling,fractaltechnology,terrainmodeling,OpenGL
一、三维地形建模原理
1.基于真实地形数据库的地形仿真
根据真实地形数据库进行地形生成是实际工作中使用最多的一类.目前大多采用数字地面模型(DigitalTerrainModel,DTM)来生成,数字地形模型最初是为了高速公路的自动设计提出来的(Miller,1956).此后,它被用于各种线路选线(铁路、公路、输电线)的设计以及各种工程的面积、体积、坡度计算,任意两点问的通视判断及任意断面图绘制.在测绘中被用于绘制等高线、坡度坡向图、立体透视图,制作正射影像图以及地图的修测.在遥感应用中可作为分类的辅助数据.它还是地理信息系统的基础数据,可用于土地利用现状的分析、合理规划及洪水险情预报等.在军事上可用于导航及导弹制导、作战电子沙盘等⋯.
地形可视化应用中经常会遇到的一个问题是,根据数字地面模型生成的模型数据库过于庞大,通常包含了超过图形硬件实时处理能力的三角形,而且地形模型纹理容量也可能超出了硬件纹理内存的容量,实时系统往往不能处理这样规模的地形.对过于复杂的地形,通常使用细节层次技术(LevelsofDetail,简称L0D)来简化.LOD技术在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率.该技术对每一原始多面体模型建立几个不同逼近精度的几何模型.与原模型相比,每个模型均保留了一定层次的细节.在绘制时,根据不同的标准选择适当的层次模型来表示物体.LOD技术具有广泛的应用领域,很多造型软件和VR开发系统都支持LOD模型表示,恰当地选择细节层次模型能在不损失图形细节的条件下加速场景显示,提高系统的响应能力.
LOD模型的选择方法可以分为如下几类:
(1)侧重于去掉那些不需要用图形显示硬件绘制的细节;
(2)去掉那些无法用图形硬件绘制的细节,如基于距离和物体尺寸标准的方法;(3)去掉那些人类视觉觉察不到的细节,如基于偏心率,视野深度,运动速度等标准的方法.此外还有一种方法考虑的是保持恒定帧率.目前,国内外主要的地形绘制算法都围绕着视点相关连续LOD(连续层次细节,ContinuousLevelofDetail)技术展开.其思想是在地形绘制中,根据视点的位置,对于地形的不同区域,实时地给予不同的网格剖分.
表1地形数据简化技术发展过程及其主要特点
发展阶段
主要特点
离散LOD模型
同一模型各处具有相同的细节层次水平,相邻LOD间切换时伴有视觉上的突跳感
连续模型
同一模型各处具有相同的细节层次水平,可以实现相邻LOD间的平滑过渡
多分辨率模型
不同水平细节层次同时存在于模型
2基于分形技术的地形仿真
分形几何(fracta1)关注的是物体的随机性、奇异性和复杂性,它试图透过混乱现象和不规则构型揭示隐藏在背后的局部与整体的本质联系和运动规律.分形几何具有细节无限以及统计自相似性的典型特性,它用递归算法使复杂的景物可用简单的规则来生成,在现代计算机图形学中,分形几何在对自然现象的真实绘制和建模方面起着重要作用.分数布朗运动(fractionalBrownianmotion,fBm)数学模型是现代非线性时序分析中的重要随机过程,它能有效地表达自然界中许多非线性现象,也是迄今为止能够描述真实地形的最好的随机过程.分形几何建模大致可归纳为泊松阶跃法(Poissonfaulting)、傅里叶滤波法(Fourierfiltering)、中点位移法(midpointdisplacement)、逐次随机增加法(successiverandomadditions)和带限噪声累积法(summingbandlimitednoises)等5类.
(1)泊松阶跃法是将泊松分布用于fBm的产物,它在服从泊松分布的间隔上,将高斯随机位移
(或称步长函数)加到一个平面或球面上,其结果具有fBm特征.这种方法很适合于用球面生成类似星球的物体,它的主要缺点是算法的时间复杂度达到了.
(2)傅里叶滤波法是将一个二维的高斯白噪声进行傅里叶变换,在频域将变换结果同一适当的滤波器相乘,然后再将所乘结果进行傅里叶反变换,其结果就是fBm,从而形成自然地景的形态.这种方法的优点是可以精确地控制所有的频率分量,产生不同的纹理图像效果,缺点是最终形成的地表结果具有周期性,且算法的时间复杂度是0(1nlogn).此外还缺少细节的局部控制以及难以改变采样的精细程度等缺点.
(3)中点位移法是标准的分形几何法,可用作快速地形生成.它是利用细分过程中,在2个点或多个点之间进行插值的方法来建模,因此中点位移法产生了真正的分形地表.但是不同细分阶段产生的点在相邻区域中有不同的统计特性,这常会留下一道明显痕迹,即所谓的“折痕问题”(creasingproblem),当添加更多细节时,该折痕也不消失.
(4)逐次随机增加法是一个灵活的细分方案,如果需要利用上一级细分过程确定的点,则这些点首先需要增加一个服从某种分布的随机变量,一般新的点可通过在上一级细分水平基础上进行线性或非线性插值得到.
(5)带限噪声累积法是将频率范围受到严格限制的信号反复叠加,其中每一个信号的幅度是随机变化的(即噪声),因此这种方法也称噪声合成法.这是一种基于函数的建模方法,每个点的确定独立于它的所有邻接点,这是此法区别于一般的随机分形算法的独特之处.
3基于数据拟合的地形仿真
最简单且常用的地形仿真方法是由稀疏分布点的高程值构成一些简单的三角形平面,从而形成地形框架,并贴以纹理图像的方法.这种方法显示速度很快,但基本框架过于简略,且常有很强的卡通效果.因此,地景的真实感受到影响.很多情况下,地形仿真也用曲面(如二次、三次曲面等)进行拟合,曲面不需作分段线性近似,仍可以保证相邻面的斜率连续性,因此非常灵活.但由于其数学计算的复杂性,对于复杂场景来说,计算量较大.另外,为了增加逼真效果,也可以用分形技术直接对用上述方法生成的光滑平面或曲面进行噪声扰动,从而形成真实感较强的地形表面。
二、三维地形建模实现方法
1.基于OpenGL技术的地形建模与实现
计算机图形学中的所有光滑曲面最终都是由多边形(主要是三角形)无限逼近得到的,因此建立三维地形模型的实质是构造用来逼近该曲面的空间三角网。
利用准备好的数据点根据Delaunay三角网的构网规则生成三角网,如图1
图1
在生成三角网后,还需要注意组成三角网的各个三角面法向量的标注。
因为生成地形的明亮程度除取决于光源和明暗处理方式外,还受到三角面点与面的法向量的影响。
一般点的法向量取值为其周围面法向量的均值。
在图2,点的法向量即可表示为与其相邻的四个面法向量N1、N2、N3、N4的和的平均值。
图2面与点的法向量计算
LOD(LevelofDetails)技术地形建模LOD技术是指为了更好地实现三维复杂模型的实时动态显示,将三维物体用多种不同的精度表示,并根据观察点位置的变换而选择不同精度的模型予以成像的技术。
一般来说,地形的数据量是很大的,利用一般的方法构,建大型的地形需要消耗大量的内存并且也会严重的影响渲染速度。
然而,并不是系统每次都必须耗费大量的内存和CPU来渲染大数据量的地形,因为当观察点距离地面很远时,地形的图像在屏幕上占据很少的象素点,在这种情况下,用大量的多边形面片去精确表示地形是不必要的。
所以,系统只需要在观察点离地面很近,需要精细的描述地貌的时候,才需要渲染大量的多边形来逼近真实地形;而在观察点远离地面时,则可以简化数据量来达到提高渲染效率和减少内存消耗的目的,也就是利用LOD技术。
利用LOD技术进行地形建模的效果见图3、图4、图5所示。
图3最高细节层次地形图
图4中间细节层次地形图
图5最低细节层次地形图
图3、图4、图5分别是不同的细节层次下对同一组地形数据进行的地形建模,左图是网格图,右图是实体图。
由左图可以看出渲染的多边形面片数明显减少,而右图的实体效果当视点离地面很远的时候不会有明显的变化。
为了具体的说明LOD技术带来的效率提高,表2对比了不同的细节层次下渲染的多边形数目、每秒钟帧数(Fps)、内存使用、Cpu使用的情况(测试条件同上)。
通过表2的性能对比可以得出,使用较低的细节层次在渲染效率的提高以及系统消耗的减少上都有优异的表现。
这说明利用LOD技术实现大规模三维地形具有实际的工程价值。
所以,在不同的观察高度下对三维地形使用不同的细节层次,可以很好的在不损失视觉效果的前提下提高程序效率。
表2不同细节层次下系统执行效率比较
多边形数
Fps
内存消耗
CPU占用
最高细节
230400
14
14540k
99%
中等细节
57600
33
13868k
97%
最低细节
14400
50
13708k
8%
2.基于3DSMAX的地形建模与实现
首先,利用经过处理后的DEM数据,在3DSMAX软件下建立数字地形(3DSMAX建模的具体方法和步骤见相关技术文献)。
图63DSMAX下的三维地形
通过3DSMAX建成的数字地形如图6所示。
当3DSMAX模型建立完成之后,就需要将此模型转换为OpenGL中的顶点数组。
有三种方法可以实现上述的转换:
1)直接对3DSMAX模型进行读取,将各个信息放入对应的数组中;2)利用工具软件如DeepExploration等,可以将3DSMAX模型转换为C语言文件,并且在C语言文件中将模型信息存储在数组中;3)利用已经封装好了的3DSMAX文件读取类进行模型转换。
如使用比较广泛的CLoad3DS类,它由专业的人员编写并封装好,通过包含它的头文件和执行文件,并调用相应的函数即可完成.3d模型的转换。
这三种方法各有优缺点。
第一种方法优点是可以选择对自己有用的信息进行存储,将不关心的信息进行滤除,提高程序效率,缺点是使用者需要对.3d文件结构有较深的了解,并且需要进行量的程序编写,比较费时费力;第二种方法优点是不需要具备专业的.3d文件结构知识,直接通过软件转换,省时省力,缺点是大部分软件只能将3DSMAX中的顶点数据转换成数组保存,但是将丢失纹理信息,如图3所示;第三种方法较好的解决了前两种方法的缺点,它既可以方便的对3DSMAX模型进行转换,又不会丢失纹理信息,如图4所示。
但是缺点是它将所有的信息完全的保存下来,这样在OpenGL渲染的时候会增加系统的运算量,降低程序效率。
GL中的顶点数组。
有三种方法可以实现上述的转换:
1)直接对3DSMAX模型进行读取,将各个信息放入对应的数组中;2)利用工具软件如DeepExploration等,可以将3DSMAX模型转换为C语言文件,并且在C语言文件中将模型信息存储在数组中;3)利用已经封装好了的3DSMAX文件读取类进行模型转换。
如使用比较广泛的CLoad3DS类,它由专业的人员编写并封装好,通过包含它的头文件和执行文件,并调用相应的函数即可完成.3d模型的转换。
这三种方法各有优缺点。
第一种方法优点是可以选择对自己有用的信息进行存储,将不关心的信息进行滤除,提高程序效率,缺点是使用者需要对.3d文件结构有较深的了解,并且需要进行大量的程序编写,比较费时费力;第二种方法优点是不需要具备专业的.3d文件结构知识,直接通过软件转换,省时省力,缺点是大部分软件只能将3DSMAX中的顶点数据转换成数组保存,但是将丢失纹理信息,如图7所示;第三种方法较好的解决了前两种方法的缺点,它既可以方便的对3DSMAX模型进行转换,又不会丢失纹理信息,如图8所示。
但是缺点是它将所有的信息完全的保存下来,这样在OpenGL渲染的时候会增加系统的运算量,降低程序效率。
图7利用软件转换.3d文件模型效果图
图8利用CLoad3DS类转换.3d文件模型效果图
表3两种.3d模型转换方法的比较
多边形数
Fps
内存消耗
CPU占用
方法2
34517
28
99204K
99%
方法3
34517
46
30360K
56%
利用第一种方法和第三种方法从实现技术上是一致的,都是通过对.3d文件的信息分类进行读取,不同的是第一种方法需要自己编程,第三种方法利用已有的程序。
而第二种与第三种方法相比,第二种方法虽然也将所有的顶点数据保存下来,但是可以有选择的在OpenGL中绘制有用的顶点。
为了比较了该两种方法对同一个.3d三维地形模型进行转换时的效率,特选择多边形数目、每秒钟帧数(Fps)、内存使用、CPU使用等指标来衡量,其对比结果如表3所示。
3.性能对比
以上论述了两类三维地形建模和实现技术,对这两种不同的实现方法的优劣仍需对比研究。
鉴于此,本文通过对这两种方法渲染相同数量多边形的Fps、消耗内存以及CPU效率等指标进行比较,其中使用封装好的CLoad3D类来转换3DSMAX文件。
用来测试的电脑配置和上面的测试配置相同。
性能对比的测试结果如表3所示。
表4两种建模方法的比较
多边形数
Fps
内存消耗
CPU占用
3DSMAX
34517
28
99204K
99%
OpenGL编程
34225
36
34784K
98%
由表4可以得出,渲染相同数量多边形,OpenGL编程建模比3DSMAX建模使用更少的内存消耗并且有更高的Fps。
所以程序如果偏向于追求程序执行效率,则使用OpenGL编程建模为好。
然而,3DSMAX建模优点也是明显的,使用OpenGL程序所构建的三维模型外观上比较粗糙,而且建模的直观性较差、修改模型时的效率也较低,同时建模过程比较繁琐,编程量较大,而3DSMAX是专业的三维建模软件,利用它可以方便的建立物体模型,且不需要编程便可很直观地构建模型,模型外观更精细,可以保留很多细节。
当程序要求三维地形具有复杂精细的外观效果,应当考虑使用3DSMAX建模实现。
4.结论
本文从三维地形实现过程的角度出发,围绕三维地形建为512M,操作系统为WindowsXP)。
综上所述,对于.3d三维地形转换的第二种方法不太适合对纹理要求较高的模型转换中。
对于使用第一种方法还是第三种方法应视不同情况来选择:
1)当系统对实时性要求高而且地形大,并且开发时间宽裕时,选择第一种方法;2)当系统注重开发时间,并且可以容忍一定效率损失时,选择第三种方法。
模的实现方法展开研究,重点研究了OpenGL支持下的两类三维地形建模和实现技术,并对其性能和优缺点进行了对比。
通过对两种方法的性能和优缺点的比较和分析,得出不同方法的适用场合,从而为实际工程应用中的地形建模和实现技术的选择提供依据和指导:
1)系统在性能和效果上更倾向于性能,并且需要占用更小的内存和CPU,则适用OpenGL编程实现;
2)系统在性能和效果上更倾向于效果,并且对细节方面有较高要求,纹理贴图复杂多变,则适用3DSMAX建模实现。
参考文献:
[1]胡涛.三维地形技术研究[J].河北:
光电系统信息控制技术国家级重点实验室,2007.
[2]丁斌,祖家奎.三维可视化中的地形建模与实现技术研究[J].南京:
南京航空航天大学自动化学院,2008.
[3]龚珍.三维地形模型构建及其可视化技术研究[D].华中科技大学硕士学位论文,2006
[4]李光玉,刘雁春.基于openGL的地形三维可视化技术与实现[M].中国测绘学会海洋测绘专业委员会第二十一届海洋测绘综合性学术研讨会论文集,2009.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三维 地形 建模 技术