付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、写在前面虽说是技术手册,但是没有源码的研究就算是一个教程吧。由于本人能力有限,文章中有很多不 当之处,请各位原谅。Bigheader联系:qdsqz212worldwind 技术手册目录:1. WorldWind 软件架构 WW 功能介绍 WW 与 XML Client 与 Server WW 使用链接 本地缓存路径 本地功能配置 http 请求与 asp WMS 、WFS2. WorldWind金字塔体系03瓦片金字塔详解及其对应公式0 3NASA World Wind Tile Structure 03NASA World Wind Map Tile System 0 4瓦片请求调度策略
2、052.2.1当前显示请求及其显示(客户端) 052.2.2目标瓦片快速搜索算法 082.2.3瓦片数据的请求预测(服务器) 082.3可视化的地球空间数学模型 102.3.1地球三维 LOD模型 103. Geospatial image processing143.1 步骤:(准备知识: LOTD :0 层瓦片大小; TileSize:)143.2 NLT Landsat 处理技术范例153.3 dstile howto154. Creat a new world174.1World Wind 本地文件说明4.1.1. Worlds4.1.2. 在安装目录下4.2 创建新的世界模型5. M
3、aking layer 185.1 添加新图层 (更详细可参考 )5.2 Point205.3 Lines205.4 Polygon235.5 Model Feature255.6 Effects andMulti-Texturing275.7 Shapefile325.8 KML/KMZ6. ddons 与 plugins32addons 与 plugins 区别插件总汇及其功能7. script 脚本338. 编译调试339. 读书籍和论文3410. 1.4.1 版本发展35一、 WW 软件结构1.1 功能介绍World Wind(简称 WW,中文有人直翻译为世界风),是NASA发布的一个
4、开放源代码 (Open Source)的地理科普软件 (由 NASA Research 开发,由 NASA Learning Technologies 來發展 ),它是一个可视化地球仪, 将 NASA 、USGS 以及其它 WMS 服务商提供的图像通过一个三维的地球模型展现,近期还包含了月球、 金星、火星、天文星系等的展现。用户可在所观察的行星上随意地旋转、放大、缩小 , 同时可以看到地名和行政区划.软件还包含了一个软件包,能够浏览地图及其它由因特网上的 OpenGIS Web Mapping Service 提供的图像。目前软件所使用的数据:低分辩率的 Blue marble 数据现在包含的
5、初始安装内 ,当用户放大到特定区域时,附加的高分辩率数据 将会自动从 NASA 服务器上被下载。A 静态数据层 :en:Blue marble 图像en:Landsat 图像en:USGS 图像en:SRTM 地形数据B 动画数据层 :en:Animated Earthen:MODISen:GLOBE1.2 WW 与 XMLWorldWind 是一个优秀的客户端框架引擎, XML 实现数据描述和软件设置, 通过 WW 的 WorldModel 、 图层、插件、 http 和 WMS 请求、三维渲染等实现交互式浏览。也就是说 XML 是数据。 WorldWind 则是数 据执行的引擎,WW可扩展
6、性和开发性非常强大。1.3 Clinet 与 Server1.3.1 WW 使用链接(附表 1)1.3.2 本地缓存路径(附表1)1.3.3 本地功能配置(附表1)1.3.4 http 请求与 aspBlue marble 、:Landsat、 SRTM 使用直接的 http 请求。Why not use WMS?NASA Learning Technologies and the NWW user community has tried in the pastto use WMS to serve WorldWind tiles. The immense demand of the NWW
7、user base has crippled any WMS server we 've tried to date. Instead of using an overly complex format(for serving predefined chunks that is) we opted to go with pre-rendered, pre-defined tiles that are just stored in the file system, and can be served to the client with no further processing ser
8、ver side. This reduces the strain on the server incredibly. If you believe you can setup a WMS server that would be able to withstand the NWW user base, feel free,we'd be happy to see tmhaet.wIne tahre mweoarknintig oncreating a WMS server that can read the World Wind tile structure (for compati
9、bility with other programs).1.3. WMS 、 WFSWMS web Map server 网络地图服务 WFS web Fundation server 网络要素服务USGS和所有动画数据层使用符合OGC协议的WMS和WFS实现数据网络共享。二、 WorldWind金子塔体系2.1瓦片金字塔详解及其对应公式2.1.1 NASA World Wind Tile Structure采取笛卡尔坐标,原点(X = 0, Y = 0.)在投影坐标左下方,即南极点(-90 -180 in latitude and Iongitude ), 如图:Level 0Tile si
10、ze of2.25 (djgreei)Level 1$w4125>b'tn如图 2, World Wind 使用一Level Zero Tile Size 来决定每 标准的level zero tile size还没有制定,但是它必须满足能被 是层与层间转换的最简单的距离。在NLTLa ndsat 7中,层的tile size : size=lzts/2AN次方。也就是说下一层将上一层图2个瓦片宽和高的大小(所有的瓦片都是正方形。180整除。The level zero tile size (以后称作 lzts) lzts被默认设置为2.25度。可用以下公式计算第N分为四。:Ui
11、E -7fi_5 LxklJSO00Ul -7AL5 Um -IM SLatZLoniiicreases(in degi dby Ciirrei, for 亡鈍。t level Til ;h tile.e SizeCDP1>Uf -*7.75 Uon - ISCLal -S7.75 Ucu =177.75Lai -eo Ucm - ISOamLJIELm -177.75Of -90 ILtu >1MlS图3 显示坐标轴在X、Y方向值的增量:2.1.2 NASA World Wind Map Tile SystemWorld Wind MapTile SystemWorld Wirn
12、 uses map imagery in the Plate Carree projection (aka geographic projecTion). It allows World Wind to take a recta regular image (2x1 ratio) and map it to a sphere.The base layer divides the world into 36 x 36 degree pieces starting at Level 0.Level 036 degrees50 tilesLev«l118 degrees200 tilesL
13、evel 29 degrees800 tilesLevel 34.5 degrees3200 tilesLevel rFor pertormance reason World Windstorms multiple copies of the same map in successively higher resolutions Each additional layer quadri pies the number of tiles and size).LewlOMs丁 TI匚料吁;卡'bT冷1庄U |=: ntTO:;: :t:; I; Nl-=- P - - T3L,千.:;”
14、:.TyKi 'pwi I4;MWI 辭IWorld Wind stores all Tiles h folders based an detai leveLCoordinate information is stored in the file name of the tile. Data Data Set Name # # # # tabcLevel 1Level 2512Ech tile is a 512x51 J pixel square ttiat can be stored in any image format such as PNGr PG,DD5r曰匚 Positio
15、ning on the globe is stored in the file and fiorider names.WeridWInd DtEift FolderAhiHftbwFdnnHW)(191The coordinate system for World Wind starts at the lower teft corner.(level Q shown)ExampleC:Program FilesNASAWorid Wind 1DataEarthBlueMarbleTeMtures000020002_0007.dd5Data SetLayer Number;Row:Column:
16、Image Format:Blue Marble 021DOS(0.01(0r9|坐标与图片编号对应公式:(1)利用下面公式,求某点坐标X,Y(纬,经),(X+90)/<LevelZeroTileSizeDegrees>(Y+180)/<LevelZeroTileSizeDegrees>旦A_B反求这张图片的值/2值/2(2)利用求得的图片编号A*<LevelZeroTileSizeDegrees> B*<LevelZeroTileSizeDegrees> 这样求得图片起始分割点坐标,然后以在某层值*2的N次方=文件夹号A (取整数如 值*2的N
17、次方=图片后缀E (取整数) 左下角坐标的N次方-90=纬度的N次方-180=经度N的文件号,图片号256.65 即为 256)<LevelZeroTileSizeDegrees> 值/2的N次的间隔分割图片,把整幅图分成 256*256 or 512*512BMNG(500m)LandSat /Geocover(30m/15m)OnEarth(15m)USGS(1m)SRTM(90m/3m0(US)36X 36。2.25 X 2.25。2.0 X 2.0。0.8 X 0.8。20 X 20。2.2瓦片请求调度策略2.2.1当前显示请求及其显示(客户端)(1) 瓦片金字塔模型构建第
18、2広乳0 h:金字塔是一种多分辨率层次模型。在地形场景绘制时,在保证显示精度的前提下为提高显示速度,不 同区域通常需要不同分辨率的数字高程模型数据和纹理影像数据。数字高程模型金字塔和影像金字塔则可 以直接提供这些数据而无需进行实时重采样。尽管金字塔模型增加了数据的存储空间,但能够减少完成地 形绘制所需的总机时。分块的瓦片金塔模型还能够进一步减少数据访问 量,提高系统的输入输出执行效率,从而提升系统的整体性能。当地形 显示窗口大小固定时,采用瓦片金字塔模型可以使数据访问量基本保持 不变。瓦片金字塔模型的这一特性对海量地形实时可视化是非常重要的。在构建地形金字塔时,首先把原始地形数据作为金字塔的底
19、层,即 第0层,并对其进行分块,形成第 0层瓦片矩阵。在第0层的基础上, 按每2 2个像素合成为一个像素的方法生成第1层,并对其进行分块,形成第1层瓦片矩阵。如此下去,构成整个瓦片金字塔。以影像为例,设第I层的像素矩阵大小为irl xicl,分辨率为resl,瓦片大小为is为s,则瓦片矩阵的大小 tri xtcl 为:tri = |ljrl/is tcl = jcl/is 其中“ L”为向下取整符,下同。按每2X2个像素合成为1个像素后生成的第1+1层的像素矩阵大小irl+ 1Xcl+ 1为:irl+1 = |lirl/2icl+1 = |licl/2其分辨率resl+ 1为:resl+1 =
20、 resl 2 x不失一般性,我们规定像素合成从像素矩阵的左下角开始,从左至右从下到上依次进行。同时规定瓦 片分块也从左下角开始,从左至右从下到上依次进行。在上述规定的约束下,影像与其瓦片金字塔模型是 互逆的。同时,影像的瓦片金字塔模型也便于转换成具有更明确拓扑关系的四叉树结构。线性四叉树瓦片索引( W中应用QST即quadrat size tree )四叉树是一种每个非叶子节点最多只有四个分支的树型结构,也是一种层次数据结构,其特性是能够 实现空间递归分解。图2是瓦片金字塔模型的四叉树结构示意图,其中矩形符号代表叶子节点,圆形符号第诟第1星第0松閨2氐片金字塔横型的四叉轲姑构代表非叶子节点。
21、本文采用四叉树来构建瓦片索引和管理瓦片数据。 在瓦片金字塔基础上构建线性四叉树瓦片索引分三步: 即逻辑分块、节点编码和物理分块。 逻辑分块与构建瓦片金字塔对应,规定块划分从地形数据左下角开始,从左至右,从下到上依次进行。同时规定四叉树的层编码与金字塔的层编码保持一致,即四叉树的底层对应金字塔的底层。设(ix,iy)为像素坐标,is为瓦片大小,io为相邻瓦片重叠度,以像素为单位;(tx,ty)为瓦片坐标,以块为单位;I为层号。若瓦片坐标(tx,ty)已知,则瓦片左下角的像素坐标(ixlb,iylb)为:ixlb = tx is xiylb = ty is x瓦片右上角的像素坐标(ixrt,iyr
22、t)为:iyrt = (ty + 1) is + ioK -1ixrt = (tx + 1)is + icx -1如果像素坐标(ix,iy)已知,则像素所属瓦片的坐标为:tx = |ljx/isty = jy/is由像素矩阵行数和列数以及瓦片大小,可以计算出瓦片矩阵的行数和列数,然后按从左至右,从下到上的顺序依次生成逻辑瓦片,逻辑瓦片由(ixlb ,iylb), (ixrt,iyrt), (tx,ty), l)唯一标识。 节点编码假定用一维数组来存储瓦片索引,瓦片排序从底层开始,按从左至右,从下到上的顺序依次进行,瓦片在 数组中的偏移量即为节点编码。为了提取瓦片(tx,ty,l),必须计算出其
23、偏移量。我们采用一个一维数组来存储每层瓦片的起始偏移量,设为 osl。若第I层瓦片矩阵的列数为tcl,则瓦片(tx,ty,l)的偏移量ofset为: offset = ty xtcl + tx + osl 物理分块在逻辑分块的基础上对地形数据进行物理分块,生成地形数据子块。对上边界和右边界瓦片中的多余部分 用无效像素值填充。物理分块完毕,按瓦片编号顺序存储。(3)瓦片拓扑关系瓦片拓扑关系包括同一层内邻接关系和上下层之间的双亲与孩子关系两个方面2。邻接关系分别为东(E)、西(W)、南(S)、北(N)四个邻接瓦片,如图3(a)所示;与下层四个孩子的关系分别为西南 (SW)、东南(SE)、 西北(N
24、W)、东北(NE)四个孩子瓦片,如图3(b)所示;与上层双亲的关系是一个双亲瓦片,如图3(c)所示。若已知瓦片坐标为(tx,ty,l),则该瓦片相关的拓扑关系可表示为:1) 东、西、南、北四个邻接瓦片的坐标分别为:(tx+1,ty,l)、(tx-1,ty,l)、(tx,ty-1,l)、(tx,ty+1,l);2) 西南、东南、西北、东北四个孩子瓦片的坐标分别为(2tx,2ty,l-1)、(2tx+1,2ty,l-1)、(2tx,2ty+1,l-1)、(2tx+1,2ty+1,l-1);3) 双亲瓦片的坐标为(lx/2 ,_ty/2 ,1+1)。N 丄丁一.imE(3)郸接瓦片團3(b)孩子瓦片
25、瓦片拓卄关紊水盘国宽和高分别为Xw和Yw(以像素为单位),(a)邻接瓦片(b)孩子瓦片(c)双亲瓦片(4)地形场景数据的动态管理可见区域及最佳地形分辨率计算根据视点的坐标和视线的方向,就可以计算出视 景体与地形平均水平面相交的平面区域范围,即地形 可见区域范围。图4为地形可见区域示意图,图中XOY为地形平均水 平面,E为视点,视线EM与地形平均水平面的交点 为M,视点在XOY上的投影为M0。视景体E_ABCD与 平面XOY的四个交点分别为 A、B、C和D ,则地形可 见区域范围即为四边形 A BCD。有关点A、B ; C 和D的坐标的详细计算方法,可参考文献3。地形可见区域的表示若用于地形显示
26、的屏幕窗口 视场角和垂直视场角分别为FovX和FovY。设当可Dx见区域ABCD恰好充满显示窗口时,窗口水平方向和垂直方向平均每个像素所对应的地面距离分别为和Dy,则有:Dx = EM xtan( FovX / 2)2.0 KXwDy = EM xtan (FovY / 2)2.0 /<Yw即当地形分辨率X方向低于Dx或Y方向低于Dy时,地形显示的精度将会降低;反之,将会产生不必要的 数据冗余,影响绘制效率。也就是说,此时的Dx和Dy即为理论上地形绘制所需的最佳分辨率。由于通常地形X方向和Y方向的采样间距相同,因此我们在实际应用中取Dx和Dy中的小值作为最佳地形分辨率,用作后续瓦片搜索的
27、重要依据。需要指出的是,通常该最佳分辨率被用作窗口中心瓦片所对应的分辨率, 而窗口其它位置所对应的瓦片分辨率则根据瓦片中心到视点的距离作适当的降低调整,因为这不仅符合人 眼的视觉规律,而且还可以减少用于地形绘制的三角形数量。World Wind当前视角高度值与图层调度间关系探讨How does altitude relate to a level in a layer being displayed?在 WW 中,从 N-1st 转换到 Nth level 的高度值是:(LevelOTileSize * 390km / 2AN ) x X (因子)例如对于 NLT LS7图层,它的L0TS=2
28、.25deg。它的0 level从390*2.25 = 877km 开始可见,level 1在小于 439km可见等;(但这只是从WW的行为分析得到而不是从源代码)对于较小的高程(小于 2000km ), X因子近似为1。然而,高于 2000km因子就减少(可能是arctan(x)/x , 或者其他)但是,为什么刚好390km ?为什么非线性 非常量的因子?肯能只有 WW开发者才知!A Small Analyse:(假定屏幕默认尺寸为wWidth=992px和wHeight=653px,南北方向的视角范围为FOV=45deg)打开On Earth layer ( L0TS=2.0deg )并飞
29、行到高度 Alt=195km,这时level2的瓦片开始显示。那么图片区域的南北范围尺寸(N-S)dimension- nsDim )是多少?nsDim = Alt * 2*ta n(FOV/2),所以在这里 nsDim = 195km * 2*ta n(22.5deg) = 161.5km.将它转换为度数(1deg=111km),得到nsDim = 1.454deg。每个level2的瓦片覆盖 0.5x 0.5 degree的区 域,因此“照相机”(可视屏幕范围)相应有1.454/0.5 = 2.91个瓦片(南北方向上),或者2.91*512 = 1489个 像素。数值1489/653=2.
30、28可以称之为线性重采样因子( LOF- Lin ear Oversampli ng factor );平方后,得到区 域重采样因子(AOF-real oversampling factor )。在我们这例子为 5.20。这意味着什么? 5.2个瓦片图片的像素在屏幕上显示为1个像素。在没有进入下一图层时,这些参数能减少到什么程度?在例子中,下一层的开端为Alt=97.5km,即195km的一半。当我们达这里时,the level2 tiles减少到只有 L.O.F.=1.14或者A.O.F.=1.30。Now let's generalize it:When are these LOF
31、 and AOF beco ming big (giv ing evide nee about vasti ng)? When the user has-reduced the WW win dow's height,-in creased the FOV (aka zoomed out),-tilted sig ni fica ntly, -gone n ear the Pole, -.what else have I forgot?在这些情况下, AOF可能变得非常巨大,例如值为几十,是否意味着100-or-so megabyte of tiles are neededfor re
32、n deri ng of about-1 Mpix picture.还有很多问题例女口(e.g. the When do you know whe n to 'stop'? (ie. how do you know you are at 1:1) questi on)222目标瓦片快速搜索算法目标瓦片搜索实际上伴随着分辨率搜索。如果采用一种分辨率,则 只涉及层搜索和区域搜索。对于采用视点相关LOD技术的地形可视化系 统,要求不同的区域对应不同分辨率的地形数据,因此在瓦片搜索过程 中需要进行分辨率测试,图 5为地形瓦片分辨率需求示意图,图中 E为 视点,白色矩形表示与视景体相交且
33、需要参与地形绘制的瓦片数据。矩 形越小表示瓦片分辨率越高。本文目标瓦片搜索采用由粗到细、层层推进的策略。首先判断可见区域是否在地形数据所表示的范围 内,测试与可见区域交叠的顶层瓦片是否满足分辨率要求,如果不满足,则继续测试瓦片的分支,直到搜 索出所有满足分辨率要求的瓦片。完整的算法描述如下:第1步:判断可见区域是否与地形数据交叠。如果交叠,转第2步;否则,算法结束。第2步:逐个判断顶层瓦片是否满足分辨率要求。如果满足,将其插入到绘制链表;否则,将其4个分支瓦片插入到测试链表1。第3步:判断测试链表1是否为空。如果为空,算法结束;否则,转第 4步。第4步:逐个判断测试链表1中的瓦片是否与可见区域
34、交叠。如果交叠,将其插入到测试链表2;否则,将其舍弃。第5步:清空测试链表1,转第6步。第6步:逐个判断测试链表2中的瓦片是否满足分辨率要求。如果满足,将其插入到绘制链表;否则,将 其4个分支瓦片插入到测试链表 1。第7步:清空测试链表2,转第3步。图$托片分骈率側述图承交叠测试时,只要瓦片四个角点的任何一点在可见区域内,即 表示该瓦片与可见区域交叠。对于分辨率测试,首先计算瓦片 四个角点的目标分辨率,如果四个角点的目标分辨率数值都大 于或等于瓦片所处金字塔层的分辨率数值,则表示该瓦片满足 分辨率要求,否则需要测试其四个分支。如图6所示,假设被测试瓦片的分辨率为2,由于瓦片左上角点目标分辨率数
35、值小于 2,则必须对瓦片进行细分, 然后再进行交叠测试和分辨率测试。上述目标瓦片搜索算法是一个递归过程。在进行分辨率判断时只需对瓦片的四个角点进行判断,因而 效率很高。另外,从瓦片索引数组中提取瓦片的分支无需进行空间位置判断,只需计算出瓦片偏移量即可,这同样能够显著地提高算法的性能。223瓦片数据的请求预测(服务器)(在高分辨率遥感卫星应用中,本文作者有遥感数据库的详细理论)(1)预读取:合适的数据缓冲机制可以提高系统的性能,海量地形实时可视化也不例外。当地形场景 连续运动时,如果应用程序能够提前预测系统即将需要的数据,并能提前从磁盘把这些数据读到缓冲区, 那么当应用程序真正需要这些数据的时候
36、,便可以直接从缓冲区读取,从而省去了从磁盘读取这些数据的 时间。由于在海量地形漫游时,数据预测调度和场景绘制需要同时进行,因此,我们利用操作系统的多线 程能力,将数据预测调度和场景绘制分别采用两个独立的线程来完成。数据缓冲通过预测瓦片请求来实现。我们将瓦片请求划分为高、中、低三种优先级。高优先级瓦片请求被立即处理并参与地形绘制;中优先级 瓦片请求在没有高优先级瓦片请求的情况下被读取到缓冲区,但不参与地形绘制,即所谓数据缓冲;低优 先级瓦片请求只是在系统“空闲”时才被读取到缓冲区,并且也不参与地形绘制,同样是数据缓冲。瓦片 请求优先级的确定方法如下:为表述方便,假设连续的三个场景窗口分别为窗口1
37、、窗口 2和窗口 3。为了实现瓦片数据缓冲,系统在发送窗口 1的瓦片请求时应附带发送窗口 2和窗口 3的瓦片请求,只是瓦片请求的优先级有所不同,这 便是瓦片请求预测。显然,窗口 1中的瓦片请求应该设为高优先级,而窗口 2中的瓦片请求除窗口 1的公 共部分外被设为中优先级,窗口 3中的瓦片请求除与窗口 1及窗口 2的公共部分外被设为低优先级,如图 7所示。这样,当场景运动到窗口 2时,系统在发送窗口 2的瓦片请求后,数据预测调度线程就可以直接 从缓冲区提取数据参与地形绘制,而无需即时从磁盘读取数据。设场景运动速度为v瓦片/秒,运动方向与瓦片x方向的夹角为0,刷新频率为f帧/秒,则中、低优先级瓦片
38、请求的扩展幅度 tx、 ty为: tx = vXcos 0 / f ty = v例如,当v = 33.94瓦片/秒,xs in 0 / f0 = 45 ° f = 24帧/秒时,中、低优先级瓦片请求的扩展幅度 tx、 ty都为1个瓦片,即在当前场景窗口的基础上沿运动方向的x、y分解方向各扩展1个瓦片为中优先级瓦片请求,再扩展1个瓦片为低优先级瓦片请求。(2) 异构磁盘系统的瓦片分布方式(高分辨率遥感卫星应用P205)(3) 应用实例本文的研究成果已成功应用于多个地区的海量地形数据实时可视化。以某地区地形三维可视化为例,该地区所采用的规则格网数字高程模型共有23769X23536个高程
39、点,分辨率为60米,彩色纹理影像大小为47536X47070,分辨率为30米。数字高程模型数据为2.13GB ,纹理影像数据为6.40GB。分别对数字高程 模型数据和纹理影像数据构建9层和10层瓦片金字塔和相关索引文件,瓦片大小均为128X128,相邻数字高程模型瓦片间重叠为1,相邻影像瓦片间没有重叠,生成的数字高程模型瓦片金字塔数据为2.94GB,纹理影像瓦片金字塔数据为 8.77GB。实验计算机配置:P4 CPU 1.5GHz , 512MB内存,GeForce4 64MB显卡,操作系统为 Windows2000 SP4 ,开发语言为Visual C+ 6.0,三维图形标准为 OpenGL
40、。利用本文研究的 算法实现了实验区真实纹理映射地形的三维实时可视化,并可实现地形的实时漫游及缩放旋转等交互操作。当显示窗口为800X500像素,屏幕显示误差为1个像素时,不采用瓦片请求预测时平均帧频为18.3帧/秒,采用瓦片请求预测后的平均帧频为 25.6帧/秒,缓冲区中的瓦片总数维持在 70到120之间;屏幕显示 误差为2个像素时,不采用瓦片请求预测时平均帧频为 23.2帧/秒,采用瓦片请求预测后的平均帧频为 30.1 帧/秒,缓冲区中的瓦片总数维持在 50到90之间。图8为部分实验结果。(a)地形空互浸游场盘之(b)地聊梵互漫浙场 吐二 SS剰A区三雉地務显示龍井实脸皓果(4) 结论实验表
41、明,本文提出的瓦片金字塔模型和线性四叉树索引相结合的数据管理模式,能够满足海量地形 数据实时可视化的需要,并且在实现海量地形几何数据实时绘制的同时完成了海量纹理数据的实时映射; 通过对视景体可见区域外地形数据的裁剪和基于分辨率测试的目标瓦片快速搜索算法,大大减少了地形绘 制的数据量,提高了系统的执行效率;采用基于高、中、低优先级的地形瓦片请求预测方法,进一步提高 了三维地形交互漫游的速度。本文的研究成果已扩展应用于基于网络的分布式海量地形数据三维可视化。 本文研究所采用的地形数据为规则格网数据,今后将对用不规则三角网表示的海量地形数据可视化进行进 一步研究。此外,在海量目标数据实时三维可视化、
42、基于全球框架的空间数据可视化等方面,作者还将作 进一步的研究。1 David Luebke, Martin Reddy, Jonathan D. Cohen, et al. Level of Detail for 3D Graphics M. San Francisco: Morgan Kaufmann Publishers, 2002.2 邓雪清.栅格型空间数据服务体系结构与算法研究D.郑州:解放军信息工程大学,2003.3 王源,刘建永,江南,等.视点相关实时LoD地形模型动态构网算法J.测绘学报,2003, 32(1): 47-52.4 王永君,龚健雅.用于大范围虚拟地形环境的动态场景管
43、理方法J.测绘学院学报,2003, 20(3): 231-234.2.3可视化的地球空间数学模型一般来说,遥感数据图片都是使用在WGS84坐标下的UTM投影。对于 WorldWind来说,其地球模型为圆形,半径与 WGS84坐标的长半径相等(也可以另设),在实时显示时,必须将平面的高程数据、纹理数 据分块并映射到给定的球面上。2.3.1地球三维LOD模型(1)地球模型的经纬网分割由于地球椭球模型可以在球的基础上沿自转轴方向压缩得到(利用三维图形库中的缩放函数很容易做到),所以我们先将椭球模型简化为球面模型。球面可以看作由分布均匀的经纬网组成,经纬网越密,地球模型的精度就越高。要实现视点相关球面
44、LOD最简单有效的方法就是根据视点到球面的距离来动态调整经 纬网的密度,这样就在保证视觉效果的前提下实现球面模型简化,图2-5-3显示了在不同视点距离下,球面模型的简化程度。<3)13图2巧3不同视点距离下球面模型的详细程度球面经纬网格的可见性判断在近地空间环境中漫游时,由于一个时刻我们所能看见的都是地球表面的一部分,因此,我们没有必 要绘制看不见的部分。本文利用视景体裁剪的方法来判断经纬网格是否可见。(3)利用凹凸贴图(Bump Map)表现地球表面起伏情况基于球面的三维地球绘制方法不能用几何形状来表达地面起伏,但我们可以采用凹凸贴图的方法,在 一定程度上弥补这个缺陷。在凹凸贴图实现过
45、程中,为每一个顶点计算光线向量是一个非常费时的工作, 为了加快凹凸贴图的速度,可以采用基于象素着色的硬件加速方法实现。(2)海量数据的全球地形 LOD模型(SROAM)我们将ROAMZ6 ( Real-time Optimal Adaptive Meshes,实时优化适应性网格 )算法引入到具有海量地形与影像数据的全球地形三维建模中。ROAM算法是目前应用最广的一种视点相关地形实时LOD算法。其基本思想是:在对地形进行三维显示时,依据视点的位置和视线的方向等多种因素,对于表示地形表面的三角形片元进行一系列的基于二叉树的分裂与合并,最终形成和原始表面近似且无缝无叠的简化连续网格。本文在ROAM算
46、法的基础上,提出连续球面地形LOD算法一SROAM ( Spherical ROAM 简称SROAM ),突破了经典的ROAM算法只适合于平面地形数据的限制。SROAM算法基本思想由于经典的ROAM是从分裂一个正方形网格开始不断细分地形的,在SROAM中,我们采用正方体作为球面地形的顶层,如图 2-5-4(a)。正方体的6个面分别作为ROAM算法分裂的最顶层正方形。这些正方形 的公共边设置好拓扑关系,以保证不同ROAM面在分裂、合并操作时边界上网格的连续性。图SROAM 糞法在不同分辨率下生成的球面当SROAM的顶层正方体分裂成12个三角形,并设置好三角形之间正确的拓扑关系后,ROAM的原理和
47、方法就可以完全适用了。事实上,SROAM算法比经典的ROAD更容易实现,由于球面没有边界, 因此不需要判断地形网格的边界条件,可以获得更修的绘制速度。唯一不同的是,我们需要将平面的高程数据、 纹理数据分块并映射到给定的球面上。数据模型的简化272829要建立全球的地LOD模型,其数据从覆盖全球的分辨率为几分或几秒的DEM数拒和分辨率为几百米的卫星影像,到局部区域高分辨率的 DEM数据和正射航空影像,数据量是巨大的。对于如此大的数据,要想 在中低档微机上达到实时交互的目的,必须对数据分级、分块管理z7,如图2-5-5。对于地形的分级,本文采用小波变换对地形进行简化,并分块构建金字塔。小波理论是本
48、世纪八十年代后期发展起来的一种新的信号处理工 具,在时空域和频率域都具有良好的局部化性质,可以根据不同的尺度 要求,由粗到细地观察信号,被誉为信号分析的数学显微镜,在图形图 像领域得到了广泛的应用, 如:基于小波变换的图象压缩、 图象边缘检测、 图象拼接、立体视觉与匹配、曲面插值等,而基于小波变换的图象压缩-是其目前最成功的应用之一。由于规则格网实际上为一二维数组表示的高度值,完全可以将高度域看成图像的灰度,将图像处理的算法引入格 网简化中。本文采用多进制小波简化 DEM数据。M进制小波变换公式为:辱“二另工Xi KfkgMkf+gMjrl 2其中,aj,k,i为小波的低频成分,j为任意整数。
49、k,1 = 0,1,2,.n。、n1、n2为正整数,C为常量。根据四进制小 波将全球数据简化为金字塔数据结构29;然后,根据计算机硬件的性能把每一层分为若千块;最后,将组织好的数据写入文件或数据库。近年来对于大数据量纹理数据的处理方法研究大纹理数据调度、映射的文献并不少见。如基于原始纹理图像分割的传统方法30和MP-Grid方法32,都是采用预先把大纹理分割成小的纹理片,使每个小纹理片生成的Mipmap图适应硬件存储,然后根据视野的覆盖范围调度相关纹理片的Mipmap图组合生成要显示的数据。韩慧健等人提出了使用Clipmap(裁剪Mipmap)实现大纹理映射31,他的思路是先为原始大纹理生成M
50、ipmap图存储在硬盘,再分割 Mipmap各层,调入各层与视野有关的分割片数据到有限内存,相当于 把视域覆盖的纹理部分裁剪下来,这样可以把整个纹理指定在单个坐标系中。总之,解决大纹理贴图的问 题目前都采用分级、分块的方法,该方法可以较好的解决硬件的存储和带宽瓶颈问题。本文也采用分级建 立影象金字塔、在每一级上分块随视点动态调度的方法实现。高程数据球面映射对于某一块DEM数据来说,通常表示为一个二维数组 fDEMnRownCol,nRow 和nCol分别表示地形在 纬度、经度方向的采样点数。由于ROAM算法的三角形网格的分裂、合并操作可以看作是在二维平面上进行,三角形顶点的高程用顶点的平面位置
51、(x,y)可以很方便的在fDEM数组中查找得到。而球面 LOD算法则不然,因为三角形分裂 合并操作是在三维球面上进行的。(i)=arcsinlla =:arctanl假设要绘制的地球的中心在原点,在某个三角形分裂过程中, 网格中新生成的某一个顶点计算坐标(即被分裂的三角形斜边中点 坐标)为P (Px,Py,Pz ),根据球面经纬度投影的原理,向量P的方向决定了该点在球面上的经纬度坐标。因此,我们首先建立P (Px,Py, PZ)与经纬度平面坐标(a, 3之间的映射关系(如图2-5-6 ) 根据球面几何关系,经纬度(a, 3)与P的关系为:图2-5-6 DEM数据球面映射其中,坐标a 测度表示。
52、再分别将a, 3规划到0-1区间内后,我们容易得到经纬度与fDEM坐标m,n之间的关系。鬥严)£心综合(2-5-2)(2-5-3 )式,得到位置P (x, y,z)与DEM高程数据fDEM的坐标映射关系:*nRowrarcsin(/ /|P) 门I ;- + 引最终我们得到P点对应的的实际坐标为:严zf) =P XP 其中R为地球半径。|P|为向量P的长度。 地图投影模型图丄坐标系的龙义截据集的构建及在mL的位置信息分类详细内容数据彙金字塔相邻层之间的缩放系数昴高 域低分辨率特征数血的来淘、名称和类哩等瓦片瓦片大小、液段数H和字节数像棗坡圮墟小像索值、高程起算原点和第放比 例可选j投
53、彩投影坐标系类型、坐标系参数等3维帑标系3樂碟标类璽、鑫苇椭球卷数、到地心坐标 变换凉阵的系数像索坐标系到逻辑坐标系的转换系数吝出坐标所有层xtr yf方向疑大/绘小坐标、m “方 向城大杲小坐标等表1元数据捕述文件记录的佶息当前大地坐标系是统一的,能准确、唯一地描述地球上任一点的位置,并能动态适应历史的、现代的越来越精密的各种参考椭球体,它可作为地球数字产品和大型G IS最为适当的坐标系,即采用(B, L ,H)描述地理实体几何特征点。这时二维场(B,L )是三维地理信息空间沿法线的一个二维投影,可以用地图投影把它展平到XO Y平面上,也可不展,它本身为规则的三维椭球面。由于其数学规则,采用
54、二维的曲线族(B, L )来表示其上坐标显得简便得多 ,人们也更易理解,它是地理信息的水平坐标系,而H可视为垂直坐 标。大型G IS作用空间由小范围局部扩展到地学大范围 ,甚至全球范围,地球数字产品的覆盖区域也遍布 全球,在这样大的区域内实现信息共享和互操作 ,除统一采用上述椭球坐标系外 ,“地图投影”的标准化也 是十分重要的。(详细描述见文章大型 GIS与数字地球的空间数学基础研究 ) 误差分析(后加) 视见体的计算在视点漫游时,ROAM等平面LOD算法通常要对视景体范围内所有网格点进行动态误差计算。而球面2-5-80LOD算法有其特殊性,因为,当视点在球面上漫游时,地平线以下的网格是看不见的。如图视点E距离地球高度为H(先不考虑地表起伏),地球平均半径为R,EC为视线方向,那么地平线到视点的距离为:对于在球面上三角形网格误差计算,我们采用的是屏幕误 差P,综合考虑了网格静态误差、三角形到视点距离、视 线方向等多个方面的因素。计算公式为:q = KxS(C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年北京市海淀区辅警招聘试题解析及答案
- 2026年湖南湘潭市中小学教师招聘考试试卷带答案
- 2026年保密基础知识真题试卷
- 2026年安徽省淮南市重点学校小升初数学考试真题试卷(含答案)
- 第1节 电 流教学设计高中物理鲁科版2019必修 第三册-鲁科版2019
- 第9章青藏地区第一节区域特征教学设计-2025-2026学年商务星球八年级下册地理
- 企业财务活动与财务关系教学设计中职专业课-财务管理-财经类-财经商贸大类
- 第三节 人类对全球环境的影响教学设计高中生物浙科版必修3稳态与环境-浙科版
- 高中数学 第1章 算法初步 1.3 基本算法语句 1.3.2 输入、输出语句教学设计 苏教版必修3
- 第二节 解直角三角形教学设计初中数学沪教版上海九年级第一学期-沪教版上海2012
- 真分数与假分数练习题
- 2026年山东省东营市高考英语一模试卷
- 2026陕西君保融数字产业有限公司招聘(47人)考试参考试题及答案解析
- 2026年春季青岛版小学数学二年级下册教学计划含进度表
- 中级注册安全工程师《安全生产专业实务-其他安全》真题及答案
- 2026年热交换器故障及维修案例分析
- 2025-2026学年上海市杨浦区八年级(上)期末英语试卷
- 2026年东莞市厚街控股集团有限公司招聘14名工作人员备考题库及1套参考答案详解
- 向法院申请保留最低生活保障申请书(3篇)
- 宣传招标合同范本
- AI辅助神经外科手术的智能血管保护
评论
0/150
提交评论