World Wind學習總結一

2021-06-07 20:15:31 字數 2968 閱讀 4633

原文**:

ww的紋理,

dem資料,及

lod模型

以earth

為例

1.

地形資料:

預設瀏覽器紋理資料存放在

/cache/earth/images/nasa landsat imagery/nlt landsat7 (visible color)

jpg格式,

512*512

dds格式,

dtx3

壓縮,所佔空間會增大一倍多,但據說執行時可節約

0位元組的

檔案。國界資料存放在

cache/earth/boundaries/country political boundaries

,為png

的格式,更詳細的地界現在只有

us的:

cache/earth/boundaries/us state political boundaries

,均為512*512

畫素的png

轉為dds

格式2.

dem

資料存放在

cache/earth/srtm

3.

分層原理:

以地球360度經度和

180度緯度為標準,第一層以

36度劃分,如下圖:

共分為(360/36)*(180/36) = 50

層,第二層以

18度,第三層以

9度以次類推

這也是1.4

及1.4.1

版本lod

模型的基礎

—四叉樹

由於按平面展開層層劃分,所以在

ww裡用到乙個

row,col

的概念,類

mathengine

封裝了從行,列,到經,緯度值的轉換,這也是ww進行紋理貼圖的依據

劃分後的每個方格對應乙個1所說的512*512的,對應level的紋理,有了這些資訊,再加上高度值就可以實時渲染三維影象

4

.如何取得高度值:

在類terrainaccessor

和nltterrainaccessor

封裝了通過行列,或者經緯度值讀取

cache/earth/srtm

對應層次

bil檔案的高程資訊的函式

getelevationat

等直接返回該點的高度值。

5.lod

模型: 在

1.3.5

以前的版本,使用了

vorm

演算法的lod

模型(類

binary********tree

),地形資料儲存在二叉樹的資料結構中,1

.4和1.4.1

版本採用四叉樹的資料結構,參照

3的**,

level 0

把地球按

36度劃分成

50個區域,第

0層的每一塊**為四個子樹,

這一層為

level 1

層,

每個塊都有四個子樹,包括本身資訊,資料定義為:

public double west;      // 四個方向的平面笛卡爾座標值

public double east;

public double north;

public double south;

public angle centerlatitude;

public angle centerlongitude;

public double latitudespan;

public double longitudespan;

public int level; // 層次 level

public int row; // 行,列

public int col;

// 子樹

protected quadtile northwestchild;

protected quadtile southwestchild;

protected quadtile northeastchild;

protected quadtile southeastchild;

每一塊對應當前

level

的乙個512*512

的紋理,每一塊的每條邊分為

40等份(這裡是固定不知為何),生成

41*41

或43*43

個頂點,再結合高度資訊實時繪製。

過渡處理:

如下圖level n+1

level n

級的效果

WorldWind學習 5 相機物件

首先檢視worldwindow的事件 onmouseup onmousemove handlekeydown,這幾個方法中多次呼叫this.drawargs.worldcamera的各種屬性實現了場景的控制,包括球的旋轉 場景的放大縮小,上下移動。1.接下來檢視camerabase類rotation...

WorldWind學習 5 相機物件

首先檢視worldwindow的事件 onmouseup onmousemove handlekeydown,這幾個方法中多次呼叫this.drawargs.worldcamera的各種屬性實現了場景的控制,包括球的旋轉 場景的放大縮小,上下移動。1.接下來檢視camerabase類rotation...

學習總結一

有乙個3 3方格,每個位置只能填寫1 9,不能重複填寫,要求 橫向相加 豎向相加 斜向相加的值相等。在想這道題的過程中,我一開始在想不通過隨機置換數字來通過做出這道題,我通過一維陣列來做這道題,我想的是一開始就擺好123456789這些數字,然後通過交換數字來找到目標陣列,我剛開始在想的時候沒想出這...