多分辨率LOD模型的简化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多分辨率LOD模型的简化算法
摘要:对HOPPE视区裁剪算法中包围球的建立方法进行了改进,提出一种基于视角变化和LOD技术的视区动态包围球裁剪算法。
使用该算法构造基于TIN 地形的多分辨率LOD模型,避免了节点误判及大量无谓的节点分解计算,提高了实时漫游地形建模速度。
关键词:地形可视化;HOPPE算法;TIN地形;LOD模型;简化
1引言
地形是人类社会赖以生存并从事一切实践活动的根基。
地形可视化技术是计算机图形学的一个重要应用领域
和研究方向,一直是人们的研究热点。
在图形三维显示中,往往采用不规则三角网(TIN:Triangulated Irregular Network)表示地形表面,如图1。
地形漫游建模的特点:准确性。
观察者能根据某一时刻,所观察到的部分地形,判断其在整张地形图中的位置。
要求生成的模型要在一定的视觉误差范围内;真实性。
地形表面模型的生成应根据相对观察者视点的远近,给予多分辨率,距离视点远的分辨率低,距离视点近分辨率高。
目前,基于当前计算机硬件的发展现状,对于实现具有特征的大数据量地形实时漫游,既要保持视觉效果,又要提供较高的刷新频率,仍是一大难题。
从建模的角度来解决大数据量地形的实时显示问题,是目前解决这个问题的重要方法[1]。
其中,构造、简化地形表面的多分辨率LOD模型是一个非常重要的手段。
细节层次模型(Layer of Details,LOD)是一种表达多种不同精度水平的数字高程模型。
LOD技术利用人眼的视觉冗余特性,按照视线方向和距离视点的远近及地物本身的复杂程度不同,对地形场景的不同部分采用不同程度的细节层次进行描述。
这种描述方法,不仅符合人眼的视觉观察特性,更大大的减小的地形绘制过程中需要处理的三角形数量,加速了地形的实时绘制速度。
本文主要对TIN地形进行视区裁剪时,常使用的HOPPE算法进行改进,提出一种基于视角变化和LOD技术的视区动态包围球裁剪算法。
使用该算法构造基于TIN地形的多分辨率LOD模型,避免了节点误判及大量无谓的节点分解计算,提高了实时漫游地形建模速度。
2HOPPE算法
观察者在漫游大规模TIN地形时,只看到视区内的部分地形,因此需要对TIN地形进行视区裁剪。
当处理的数据量很大时,会消耗大量的处理时间,导致渲染的速度非常慢,一般处理复杂地形景观在裁剪上花掉的时间大约占整个处理时间的1/3。
因此,一个适合与地形实时动态裁剪算法,对于地形表面模型的建立和实时漫游都是意义重大的。
常见的裁剪方式有点的裁剪、区域裁剪。
在计算机图形学中,常选用包围球作为区域进行裁剪[2],例如HOPPE包围球算法。
选取需判断的TIN地形上某一节点作为球心,设置足够大的半径建立球体,将地形节点完全包围在球体只内,如图2。
利用球体作为包围盒,计算球体的中心和6个裁剪平面的距离(d)时,如果这些距离都大于球体的半径(r),则地形在视图体之外;否则,该地形在视图体之内;如果这些距离不都大于球体的半径,则该地形和视图体相交。
其基本原理可如图3所示:
如上图所示,V0表示地形完全在视图体之外,直接判断,不需要进行地形各节点绘制;V1表示地形完全在视图体之内,直接判断,标注其所有节点在视区之内;对于V2,表示地形与视图体相交,一部分处于视图体之内,一部分处于视图体之外,那么需要对地形进行可视区或可见性裁剪,即对地形进行分解操作,以判断哪一部分节点处于视图体之内,哪一部分节点处于视图体之外。
Hoppe采用包围球算法,该算法建立的包围球夸大了节点占据的空间,因此往往会认为实际上位于视区之外的节点也与视区相交,造成了节点误判,如图4(V1为误判节点)。
另外,视点移动或者方向的改变都会引起视觉上节点分辨率的改变,因此,为避免接边裂缝的产生,需要对分辨率发生变化的节点进行快速有效的判断,进而对这部分节点进行重新构网,建立包围球。
3改进的简化算法
本文提出的改进算法基于LOD技术,依据观察视角的变化,构造地形节点包围球[3],将包围球随视角的变化反映为包围球半径在投影平面上的投影的变化。
其原理如图5所示:
图5中,地形节点包围球半径为r,球心O与视点的距离为d,视角为θ,O’为视点在投影面上的投影点,视点与投影平面的距离为z0,包围球半径在投影平面上的投影为r’,则r’=r’z0/d,且tanθ/2=r’/z0。
由于球体的特性,那么只要判断球体内各地形节点点坐标,若|x|r’或|y|>r’,则位于视图体外。
基于视角的地形节点包围球的建立就是上述思想的逆向。
首先根据视角θ
与视点到投影面的距离z0,求得视角θ的视野范围的半径r’,此即为将要建立的地形节点包围球半径r在投影面上的投影,由上述的公式即可求得r的大小。
如果知道了分辨率等级,那么可以构建相应得视图体和地形节点包围球。
如图6所示:
图6中,z0为视点到投影平面的距离,V0、V1为两个地形节点包围球,半径分别为r0、r1,球心分别为O0、O1,视点到O0、O1的距离分别为d0、d1,r0、r1在投影平面上的投影分别为r0’、r1’,易知,r0’= r0·z0/d0 ,r1’’= r1·z0/d1·r1。
基于此种方法,建立的节点包围球投影如图7所示:
图7中,表示了两个节点包围球在XOY上的投影,O为视点在投影面的投影点,节点包围球在XOY平面上的投影为两个同心圆,r0’、r1’分别为其圆的半径,L0和L1分别表示两级分辨率。
由于视角的变化,视图体和地形节点包围球都是根据视角变化动态建立的,不同包围球内的节点分辨率也不同。
根据上述分析,当|x|<r0且|y|<r0,则节点分辨率为L0,当r0<|x|<r1且r0<|y|<r1,则节点分辨率为L1,其中r0、r1分别为r0’、r1’所对应的地形节点包围球半径。
采用此种方法,视图体裁剪与LOD构造同时进行,这样就避免了在判断节点与视图体
空间位置关系时可能造成的误判,极大地减小了地形实时绘制时的计算量。
4实验结果分析
4.1实验环境
利用OpenGL 在P4 1.6G,512M DDR,Windows 2000,VC6.0环境中进行检测实验。
4.2实验目的
对比采用改进算法实时建模和HOPPE算法建模速度,如表1。
本算法利于快速建立大型TIN地形的多分辨率LOD模型。
在此基础上,还可进一步简化,较好地反应运动中地形表面的变化趋势,解决不同层次网格边界出现裂缝问题,鉴于篇幅,不再详述。
参考文献:
[1]杜莹.大规模场景中多分辨率地形TIN模型.测绘学院学报,2005(2).
[2]王宏武.球面线要素的多分辨率实时简化方法.地理信息世界,2008(2).
[3]陈园园.基于视点相关的大规模地形的生成和漫游.贵州工业大学学报(自然科学版),2005(5).。