ChunkedLOD 一种海量地形影像数据的快速漫游算法

第11卷第5期2009年10月

地球信息科学学报

JOURNAL OF GE O 2I N F OR MATI O N SC I E NCE Vol 111,No 15

Oct 1,2009

收稿日期:2008203226;修回日期:2009205211.

作者简介:马柳青(1981-),男,硕士研究生,研究方向:虚拟现实和三维GI S 。E 2mail:maliuqing@super map 1com

一种海量地形影像数据的快速漫游算法

马柳青

1,2,3

,宋关福

1,3

,郭 会

1,2,3

,周 芹

1,2,3

(11中国科学院地理科学与资源研究所,北京 100101;21中国科学院研究生院,北京 100039;

31北京超图地理信息技术公司,北京 100085)

摘要:海量地形影像数据的快速浏览是GI S 、虚拟现实、数字地球等领域应用的关键技术与难点之一。计算机硬件技术的发展特别是GP U 技术的发展,使得当前LOD 技术朝着硬件友好的方向发展;海量影像数据的不断出现,使得LOD 技术越来越多地考虑纹理数据的显示效果。本文结合LOD 和计算机硬件技术的发展现状,以高效展示影像数据为主要目的,采用数据分块、异步加载的数据组织和调度策略,通过纹理的分辨率来控制LOD 的细化层次,采用添加skirt 的方法来填充边界裂缝,实现了任意网格大小的海量地形影像数据的快速漫游。关键词:海量数据;硬件友好;异步加载;LOD;skirt

1 引言

随着航空摄影测量与卫星遥感技术的发展,

海量地形影像数据的三维浏览已经成为研究的热点。然而,受计算机内存和操作系统管理能力的限制,把所有的数据放入内存直接渲染显然是行不通的。LOD 技术根据一定的规则来简化物体的细节,选择不同细节程度的物体表达方式,是解决大规模地形影像数据快速渲染的有效手段。如离观察者近的选择较高的细节程度,反之选择较低的细节程度。在地形渲染中,也称为多分辨率地形(Muti 2Res oluti on Terrain )渲染技术。

LOD 据其网格生成的方法和针对数据结构的不同,可以分为规整网格(RSG,Regular Square Grid )的算法和不规则三角网的算法(TI N ,Triangu 2

lar Irregular Net w orks )两大类[1-2]

。TI N 的渲染算法以更少的三角形来描述地物,但由于TI N 的数据结构比较复杂,并且每调整一次分辨率都要涉及到大量的三角剖分工作,计算量较大。RSG 算

法与TI N 的算法相比有以下特点[3]

:更加紧缩的数据表示;高效的数据访问;快速的LOD 三角剖分和渲染和更容易实现。

RSG 的算法大致上可以分为Pre 2GP U 方法、

Post 2GP U 方法两类[4]

。为了解决显卡没有足够的能力对大量的三角形进行矩阵变换和光影的计算,Pre 2GP U 利用CP U 的计算能力逐个对三角形进行

处理,并逐个送到渲染管道中利用较弱的渲染硬

件实现对大型数据的处理。Pre 2GP U 方法中有较著名的连续层次细节技术CLOD (Continuous Level of

Details )[5]

,ROAM (Real 2ti m e op ti m ally adap ting me 2

shes )[6],渐进格网[7]

等,其中,ROAM 算法应用最为广泛。随着计算机硬件的发展,特别是GP U 技术的发展,渲染通道的吞吐量得到了极大地提高,渲染更多的三角形所致效率的损失大大低于CP U 严格计算删除三角形带来的损失,为了平衡GP U 和CP U 的负载,进一步提高渲染的效率,出现了Post 2GP U 方法,也称为硬件友好的方法(Hardware 2friendly methods )。

Post 2GP U 方法中,S OAR [8]

方法、Chunked 2LOD [4]

方法都是常用的方法,特别是ChunkedLOD 方法,近年来越来越受到人们的关注。Chunked 2LOD 方法旨在尽可能地提高三角形的吞吐量而降低CP U 的负载。渲染过程中,层次细节不需要像其他LOD 算法那样精确,属于离散层次细节,视点的优化是针对某一数据块进行,而不是像CLOD 中对每一个点进行处理。

伴随着Post 2GP U 方法成为LOD 技术的发展趋势,纹理数据的展示也成为当前LOD 技术研究的热点。以往LOD 算法只重视地形数据的展示,而对纹理数据没有足够的讨论,很多试验针对大规模的地形数据展开,而地形上匹配的纹理只是一张很小的没有真实地理意义的图片。随着遥感和

摄影测量技术的发展,海量影像数据不断出现,影像提供的信息丰富直观,人们甚至更关注这部分信息,而地形此时只起到辅助显示的作用。针对这种状况,考虑纹理数据的LOD不断出现[4,9-10],Chunked LOD就是其中比较著名的算法,它考虑了几何数据和纹理数据的LOD,提出了综合评价因子,但在预处理中,纹理数据与地形数据要求严格匹配,而且其评价因子也比较复杂。本文在研究以往LOD技术,特别是Chunked LOD 算法的基础上,遵循Post2GP U方法的思想,以高效展示大规模影像数据为主要目的,提出一种快速漫游海量地形影像数据的算法。

2 模型实现原理与方法

对于海量的影像和地形数据,目前,比较流行的方法是分块加载[11]。所以,本文首先根据影像、地形数据的地理范围和分辨率,将它们按照四叉树的方式分层、分块,构建金字塔。接着,系统开辟两个线程:更新线程和渲染线程。采用异步加载的思路,随着视点的移动,更新线程由LOD算法计算出需要合并和分裂的四叉树节点进行数据更新,并将结果提交给渲染线程渲染。通过合理的数据划分和数据调度策略,使得内存中待渲染的数据只与视点位置和当前渲染细节层次有关,而与整体数据量无关,从而大大提高漫游速度。为了更加有效地展示纹理数据,本文提出了用纹理分辨率来控制LOD的方法,给出了一种简单有效的评价因子。另外,本文借鉴了Chunked2 LOD的裂缝处理方法,通过添加skirt来填充裂缝,节省了CP U的计算时间,提高了显示效率。

211 基于纹理数据的LOD模型与计算

同以往的LOD模型不同,本文以影像块为单元控制LOD,场景细化采用四叉树的细化策略,每个四叉树的节点对应影像金字塔中的一块影像,节点的地形数据则从地形金字塔的近似分辨率的块中采样获得。块的细化通过如下方式计算:图1中d

1

,d2,d3,d4表示块B l ock的四个边在屏幕上的投影长度,单位为像元。控制因子d 计算如下:

d=m ax

i=1 (4)

|d i|

给定一个阈值范围[d

max ,d m in],

则块细化原

图1 LOD误差的计算

Fig11 Calculati on of LOD err or

则如下图所示

:

图2 块的分裂和合并

Fig12 Merging and s p litting of bl ocks

这种计算方式非常简单,而且极符合纹理细

化的实际情况。当一个纹理元素和屏幕上的一个

像元刚好对应时,图像在屏幕上显示效果最好。

如果多个纹理元素匹配一个屏幕像元则图像失真,

有时候甚至出现闪烁现象。如果一个纹理元素匹

配多个屏幕像元,则图像比较模糊。根据这个原

理,d

max

应该比影像块的边长略大,d

m in

应比影像

块的边长略小。若影像金字塔中块的大小为l×l,

经过作者多次试验,d

max

=l×115,d m in=l(l为金

字塔中影像块的边长)的时候能达到较好的效果。

由于每个四叉树的节点和影像块一一对应,

并没有和地形块一一对应,那么该节点的地形信

息需要从地形金字塔中近似分辨率的块中采样获

得,为了表示详细的地形信息,每个块不能只用4

个点来描述,否则地形陡峭的地方由于描述不够

精细而显示不出来。本文使用N×N个点来描述一

个块的地形信息,N的取值必须保证地形陡峭的

地方也比较细致。由于三角形描述比四边形描述

更精确,所以,渲染时把一个正方形分成两个三

角形来描述效果更佳(图3)。考虑到I ntel的CP U

内存页的大小是64K,本文在影像块l=512时,

对匹配的地形采样32×32达到了较好的效果,这

样的存储结构在一定程度上提高了存储效率,降

506

5期马柳青等:一种海量地形影像数据的快速漫游算法

低了内存缺页的次数

图3 地形块的描述

Fig 13 Descri p ti on of terrain bl ocks

在一个块内地形描述点数固定的做法存在着明显的缺点和优点。缺点是地形平坦的地方,数据显得冗余,可能只需4个点描述的地形却用了

N 个点;而地形陡峭的地方又得不到最精细的表

达。优点是:纹理显示效果好,地形计算简单,

不用去考虑地形的细化问题,即可获得地形数据,直接从地形块中采样N ×N 个点即可,并且采样块可进行缓存处理。同时本算法可高效展示影像数据

图4 裂缝及其消除方法

Fig 14 Cracks and eli m inati on of cracks

212 裂缝的消除

裂缝是由于相邻块分辨率不同而引起的。一

般有两种消除裂缝的方法:(1)是在较高层次(分辨率低)的块边缘增加顶点,其高程值与较低层次(分辨率高)块对应位置的高程相当。这种方法不仅需要改变原始数据的结构,而且在动态计算顶点的过程中会消耗CP U 资源,对地形绘制不利。(2)是忽略低层次块的顶点,使之直接与高层块的顶点相连,这种方案不需要改变原始数据即可实现[12],但是要记录邻接块的指针,计算量也较大。

本文在渲染地形时,用N ×N 个顶点来描述每个块,格网比较密集,不同分辨率块之间裂缝小而多,使用前面两种处理裂缝的方式计算量都特别大,故本文采用了Chunedk LOD

中处理裂缝的方案。

图5 Chunked LOD 中的裂缝处理

Fig 15 Filling cracks in Chunked LOD

Chunked LOD 是通过在裂缝处生成一个竖直的skirt 条带来弥补裂缝(如图5),在本算法中每块

顶点个数固定,skirt 可以预先生成,计算量非常

小。skirt 的预先生成方案如下:为每个块增加两行、两列顶点,或者在块构建的时候就为它分配(N +2)×(N +2)个顶点的格网单元(N 的含义见

前文),多加的行列则用来描述skirt,如图6(a )中的空心顶点。当顶点填充高程值时,实心顶点赋予真实高程值,空心顶点(skirt 顶点)的值则为所有实心顶点的最小高程值,即:

Z S k irt =m in i =1…N ×N

|Z i

|

图6 地形块中的skirt 条带

Fig 16 Skirts in terrain bl ocks

该方法的缺点就在于绘制了过多的三角形面片,

没有裂缝的地方甚至都生成了skirt 。但由于它处理裂缝简单,计算量小,符合Post 2GP U 的原则,所以能够提高渲染效率。

3 算法实现的方案与结果分析

311 数据块的加载和渲染方案

以上算法的前提是程序在每一帧内都能完成块的加载及地形块的构建,尽管数据加载并不占用太多的CP U 资源,但硬盘的特点决定了数据加载是实时地形加载的瓶颈。目前常用数据缓存和

块加载预测的方法解决这一问题[13]

,但在数据量

606地球信息科学学报 2009年

较大时,为了保证流畅的渲染速度,异步处理模式的效果更好[14-15]。这就涉及到了使用多线程技术。本文设计了两个线程:渲染线程和更新线程。渲染线程是主线程,主要负责块的渲染。更新线程是辅助线程,主要负责数据的更新。工作原理描述如下:更新线程根据每次计算出来的LOD因子,判断视景体内的块是需要分解还是需要合并,如果需要分解则计算出它的子结点,并加载子结点的数据。如果需要合并,则删除它的子结点。渲染线程则是采用递归的方式从块的最深层开始渲染,如果可见块的子节点都已经渲染过或者块的数据没有准备好,则不渲染该块,否则对它进行渲染。图7是两个线程的工作流程:

更新队列的作用在于将块按视点距离排序,这可保证在异步加载和渲染时最近的块,优先被更新和渲染

图7 线程的工作流程

Fig17 Workfl ow of threads

其中块的Update和Render函数都是递归的过

程,流程如图8所示

图8 块的更新和渲染

Fig18 Updating and Rendering of bl ocks

两个线程通过互斥量(mutex)来控制。数据更新的时候加锁,更新完毕后解锁。如果函数执行过程较长,还要对过程分段进行加锁和解锁,以提高两个线程执行的效率。为了保证渲染的帧数,避免更新线程执行时间过长的情况。更新线程内部设有一计时器,如果更新执行时间太长,则将线程休眠一段时间。同时,将渲染线程的执行频率设定在50帧/s,即若它执行时间小于0102s,则令其休眠,为更新线程腾出执行时间。这样两个线程基本可以适时交替运行,保证了浏览的流畅性。

312 结果分析

利用北京某块地区的地形影像数据,影像数

706

5期马柳青等:一种海量地形影像数据的快速漫游算法

据大小为65535×65535,分辨率2m ,总计12G B;地形数据大小为5945×20807,分辨率30m ,总计461MB ,在P4CP U 218G 、内存1G B 、显卡GeForce 6600LE 512M 的微机上进行了试验。影像数据按每块512×512创建金字塔,共7层,地形数据按每块大小256×256创建金字塔共6层。将影像和地形叠加到场景中显示,平均帧数可达5815帧/s,图9为地形叠加影像的绘制效果,图10为网格渲染效果,绘制窗口大小为1024×768

与当前较流行的Chunked LOD 相比,两种算法在性能上相差无几,但本算法更简单,容易对渲染进行控制;不要求地形数据和影像数据的地理范围完全匹配;能够处理任意大小的数据而不

受文件系统的限制(Chunked LOD 不能处理超过2G 的缓存)。

4 结论

本文提出的算法吸取了Chunked LOD 技术的一些优点,采用纹理分辨率来控制LOD,用添加skirt 的方法来填充边界裂缝,并以数据分块和异

步加载的方法实现数据管理和调度,避免了复杂的

数据结构和操作,经济有效地实现了海量数据的快速漫游。本文对块内的地形采用固定点数描述的方法,虽然简单,但还不能很好地描述地形的起伏状况,所以,今后应将块内的地形LOD 考虑进来,进一步提高渲染的效果和性能。另外,对块内的纹理还将建立M i pmap 多级纹理,以提高显示的效果。同时,对海量数据的快速浏览须构建数据压缩的漫游系统。参考文献:

[1]Jay Lee .Comparis on of ExistingMethods for Building Trian 2

gular Irregular Net w ork Models of Terrain fr om Grid D igital Elevati on Models .I nternati onal Journal of Geographic I nf or 2mati on Syste m s,1991,5(3):267-285.

[2]Leila De Fl oriani .A Pyra m idal Data Structure f or Triangle 2

based Surface Descri p ti on .I EEE ComputerGraphics &Ap 2p licati ons,1989,9(2):67-78.

[3]Renat o Pajar ola .Overvie w of Quadtree 2based Terrain Trian 2

gulati on and V isualizati on,UC I 2I CS Technical ReportNo .02-01,Depart m ent of I nf or mati on &Computer Science,2002.

[4]Thatcher U lrich .Chunked LOD:RenderingMassive Terrains

U sing Chunked Level of Detail Contr ol .htt p://www .vterra 2in .org,2003.

[5]L indstr om P,Koller D,et al .Real 2Ti m e,Continuous Level of

Detail Rendering of Height Fields .Ne w York:Pr oc .SI G 2GRAPH 96,AC M Press,1996,109-118.

[6]Duchaineau M A,WolinskyM ,et al .Roa m ing Terrain:Real 2

Ti m e Op ti m ally Adap tingMeshes .Pr oc .I EEE V isualizati on ’97,1997,81-88.

[7]Hoppe H.V ie w 2Dependent Refinement of Pr ogressive Me 2

shes .Pr oc .SI GGRAPH,1997,189-198.

[8]L indstr om P,Pascucci V.V isualizati on of Large Terrains Made Easy .Pr oc .I EEE V isualizati on,2001,363-370.[9]DA I Chen 2guang,DE NG Xue 2qing .Fast Rendering of Mas 2

sive Textured Terrain Data .Journal of Communicati on and Computer,2007,4(3):63-67.

[10]D llner J,Bau mann K,H inrichs K .Texturing Techniques

f or Terrain V isualizati on .Pr oc .I EEE V isualizati on,2000,207-234.

[11]马照亭,潘懋,胡金星,等.一种基于数据分块的海量地

形快速漫游算法.北京大学学报(自然科学版),2004,

40(4):619-625.

[12]H ill D.An Efficient,Hard ware 2Accelerated,Level 2of 2detail

Reading Technique for Large Terrains .T or ont o:Depart m ent

806地球信息科学学报 2009年

of Computer Science University of Tor ont o,2002.

[13]戴晨光,张永生,邓雪清.一种用于实时可视化的海量

地形数据组织与管理方法.系统仿真学报,2005,17

(2):406-409.

[14]陈刚,万刚,游雄.全球地形可视化方案的设计和实践.

系统仿真学报,2001,13(增刊):282-285.

[15]L indstr om P,Koller D,R ibarsky W ,et al .An I ntegrated

Gl obal GI S and V isual Si m ulati on System.Technical Re 2port GI T 2G VU -97-07,Georgia I nst .of Technol ogy,Mar .1997.

An Effecti ve A lgor ithm for Large Sca le I mage and Terra i n

Da t a W a lkthrough

MA L iuqing

1,2,3

,S ONG Guanfu

1,3

,G UO Hui

1,2,3

,ZHOU Q in

1,2,3

(1.

Institute of Geographic Sciences and N atural R esources R esearch,CAS,B eijing 100101,China;2.Graduate U niversity of

Chinese Acade m y of Sciences,B eijing 100039,China;3.B eijing Super m ap GIS Technologies Co m pany,B eijing 100085,China )

Abstract:W alkthr ough in massive terrain and i m age data is a key technol ogy and a difficult p r oble m of GI S,VR and D igital Earth,etc .Hardware 2friendly LOD methods become popular with the devel opment of computer hard 2ware technol ogy,such as S OAR,Chunked LOD ,GeoCli pmap etc .More and more LOD methods take account int o large texture data .Based on current LOD alg orith m s and the devel opment of computer hard ware technol ogy,the data bl ock partiti on and the quadtree algorith m were used t o establish pyra m id .A t the sa me ti m e,large data ac 2cessing was i m p r oved by synchr onous l oading,LOD was contr olled by texture res oluti on and the cracks bet w een meshes were filled by adding skirts ar ound each bl ock .The results show that the rendering and updating of data is easier t o be contr olled,the geographical range of terrain and i m age data doesn πt need matching exactly as bef ore and massive data can be l oaded and rendered quickly .

Key words:massive data;hard ware 2friendly;synchr onous l oading;LOD;skirt

9

065期马柳青等:一种海量地形影像数据的快速漫游算法

相关文档
最新文档