邹永玲,王万平
(1.长庆油田公司勘探开发研究院,陕西西安710021;2.陕西交通职业技术学院,陕西西安,710021)
应用ArcScene的地形多分辨率实时绘制方法
邹永玲1,王万平2
(1.长庆油田公司勘探开发研究院,陕西西安710021;2.陕西交通职业技术学院,陕西西安,710021)
应用VB+AO+OpenGL技术对ArcScene进行了二次开发。采用四叉树简化模型,经过视域裁剪、节点评价、裂缝消除、三角形条带等一系列优化算法,实现了ArcScene对海量地形数据的多分辨率实时绘制,并通过实例证实了开发的可行性。
三维可视化;多分辨率;ArcScene;四叉树
ArcScene是一个功能强大的3D可视化平台,它不但具有多种数据格式的三维模型建立及显示功能,而且还提供了ArcObject二次开发组件库,可以根据用户需要定制系统功能。随着数据采集技术的发展,数据的采集量越来越大,用于描述地形模型的数据量也越来越多,渲染这些海量数据已超出了目前任何图形设备所承受的能力,因此,应用VB+AO+OpenGL来完善ArcScene的地形多分辨率实时绘制功能是非常必要的。
地形的多分辨率实时绘制就是在考虑地形场景本身起伏和视相关参数的前提下,动态地选择最优节点集来形成地形场景的完整覆盖,从而在地形场景的绘制效率和质量间保持一个良好的平衡。ArcScene中DEM数据主要以Grid结构为主,并且提供了TIN转为Grid的功能,所以开发时采用了以Grid为基础的四叉树简化模型,具体流程如图1所示。
1.1 视域裁剪
在地形的实时显示过程中,由于地形涉及的范围一般都十分广阔,地形模型的数据量也很大,往往包含数以百万计的三角形,如对它们一一进行绘制,将给图形系统带来很大的负担。当然,用户的视域是有限的,事先剔除用户不可见的部分,则可有效地提高地形实时绘制的速度。
图1 开发流程图
对于四叉树结构来说,基于层次结构的区域裁剪方法并不需要对所有网格进行判断,这样大大减少了裁剪判断的次数,加快了视区裁剪的速度,因此我们采用这种方法。首先从根节点0开始,先测试它是否可见,若是,则把根节点0分成四个子节点1,2,3和4;再从节点1开始,顺序测试节点2,3和4,一直递归进行直到结束,如图2所示。
图2 基于层次的视域裁剪
1.2 节点评价测度
地形的实时多分辨率表示是通过在地形四叉树中选择合适的顶点集来完成的。节点评价测度是地形多分辨率表示的天平,是度量地形片在动态显示过程中应该采取的适宜分辨率的标准。在进行节点评价时,应综合考虑视距和地形粗糙度的影响,即当视点较远时,分辨率降低,而当视点接近模型时,模型的细节程度增加;该区域地形越平坦,采用的分辨率应该越低,反之,则要采用较高分辨率。综合以上两个因素,得到最终的节点评价公式:
式中,l是节点中点到视点的距离,d是节点的宽度,r为节点被分割和不被分割时引起的误差和,C1、C2为常量。对于四叉树的某个节点,如果该节点满足f<1时,则表示该节点必须进一步细分,否则把该节点送入图形管道进行绘制。
1.3 裂缝消除
在运用四叉树结构对地形进行多分辨率表示时,会出现天然的“裂缝”现象,给人一种不真实的感觉,在地形绘制时,必须避免这样的裂缝。本文采用的是在不同分辨率四叉树块的接边裂缝处增加面来填补的方法,即在不同分辨率的相邻节点构建三角形网格时,对于细节层次比较低的节点,在公共边上增加一些三角形来消除裂缝,虽然会带来很多的小“切面”,但在拼接处的两个节点的分辨率可以相差任意大,如图3所示。
1.4 三角形条带的使用
在地形实时动态显示中,最终三角网格的绘制速度是关键因素之一,而影响基于三角形模型数据的场景绘制速度的是每次向图形引擎输送三角形量的多少。我们知道,每个三角形包含三个顶点,如果仅仅简单地用三个顶点代表一个三角形的方式来传输三角形模型会带来大量的数据冗余。因此,如果在绘制之前能对三角形根据邻接关系进行适当排序,使得相邻三角形之间可以共享一条边。这样,当增加一个新的三角形时,只需要在原来顶点排序的基础上增加一个顶点即可,从而用较少的数据就可以完成同样模型的传输。
图3 裂缝消除示意图
如图4所示,如果不用三角形串来表示,需要18个顶点数据来描述由6个三角形组成的四叉树结点,如果使用三角形串,则只需8个顶点数据,大大提高了模型的存储和传输效率。
图4 三角形条带示意图
实验采用的地形数据为鄂尔多斯盆地北部的伊金霍洛旗地区。图5是原始数据大小为1 025*1 025的情况下,不同误差控制参数E(E=C1*C2)所对应的渲染效果和三角形数目(Count)。
图5 地形简化效果对比
实验结果表明,应用基于ArcScene的地形多分辨率实时绘制算法,能快速高效地消除结点间由于分辨率不一致所引起的裂缝效应,在对地形绘制误差进行控制的情况下,可以实现地形场景从最粗分辨率到最细分辨率的任意变化;在多分辨率地表纹理的帮助下,能够在不显著降低地形场景绘制质量的情况下达到理想的浏览效果,即使在普通的PC机上,也能实现海量地形数据的3D实时多分辨率绘制,完善了ArcScene地形三维显示功能。
[1] 汤国安,刘学军,闾国年.数字高程模型及地学分析的原理与方法[M].北京:科学出版社,2005
[2]李志林,朱庆.数字高程模型[M].武汉:武汉大学出版社,2001
[3] 刑伟,孙延奎,唐泽圣.与视点相关的多分辨率地表模型简化算法[J].清华大学学报:自然科学版,2004(1):29-33
[4] 唐丽玉,彭国均,舒娱琴.M ip-map技术在三维实时仿真中的应用[J].福州大学学报,2004(1):22-26
[5] 苏虎,周美玉.一种大规模地形的实时绘制算法[J].武汉大学学报,2003(3):81-85
M uti-resolution and Real-time Terrain Disp lay Based on ArcScene
ZOU Yongling1,WANG Wanping2
(1.Research Institute of Petroleum Exploration&Development,Changqing Oilfield,Xi'an 710021,China;2.Shanxi College of Communication&Technology,Xi'an 710021,China)
Thepaper developed ArcSceneby VB+AO+OpenGL.Used visual threshold cut,nod eevaluation,crack repair and triangular strip which are allbeyond quadtree model,realized vast date muti-resolution and real-time terrain display, and approved development is available by example.
3D Visualization;Muti-resolution;ArcScene;Quadtree
2008-07-21
P208
B
1672-4623(2010)02-0065-02
邹永玲,硕士学位,助理工程师,主要研究方向为基础地理数据库的建立与三维地形可视化技术理论、方法及其应用。