999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

地形平滑中瓦片高程數(shù)據(jù)的快速調(diào)度方法

2021-07-03 03:52:32朱俊潔陶偉殷明陽
現(xiàn)代計(jì)算機(jī) 2021年12期
關(guān)鍵詞:瓦片模型

朱俊潔,陶偉,殷明陽

(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.中國艦船研究設(shè)計(jì)中心,武漢430064;3.中國核動(dòng)力研究設(shè)計(jì)院,成都610041)

0 引言

近年來,隨著“數(shù)字地球”這一概念的提出[1],大規(guī)模地形可視化[2]在戰(zhàn)場(chǎng)仿真、戰(zhàn)場(chǎng)態(tài)勢(shì)推演、虛擬現(xiàn)實(shí)等諸多領(lǐng)域得到了廣泛的應(yīng)用。數(shù)字地球在世界各地覆蓋高分辨率的遙感影像,并通過建立覆蓋全球的數(shù)字高程模型和地球景觀模型,形成虛擬地球。地形數(shù)據(jù)以數(shù)字高程模型(DEM)為基礎(chǔ),實(shí)現(xiàn)地形的數(shù)字仿真,通過LOD 分層、四叉樹分塊全球剖分建立骨架。地形分塊的過程中,地形塊邊界頂點(diǎn)的法向量只通過每個(gè)地形塊含有的數(shù)據(jù)信息進(jìn)行計(jì)算,所以相鄰地形塊重疊的邊界頂點(diǎn)的法向量不相同,導(dǎo)致地形瓦片邊界無法平滑過渡,從而降低了三維地形的真實(shí)感。

數(shù)字地球平臺(tái)OSGEarth 通過在地形引擎中提供normalizeEdges 的選擇,解決了地形塊邊界頂點(diǎn)法向量不一致的問題。為了呈現(xiàn)真實(shí)的地形效果,渲染過程中需要調(diào)度大量高程數(shù)據(jù)和紋理數(shù)據(jù)。在大規(guī)模地形平滑過程中,OSGEarth 地形引擎對(duì)周圍地形瓦片數(shù)據(jù)的調(diào)度次數(shù)過于頻繁,會(huì)導(dǎo)致地形加載緩慢,極大地影響實(shí)時(shí)繪制的速度。

本文基于數(shù)字地球平臺(tái)OSGEarth 提出了一種地形平滑過程中瓦片高程數(shù)據(jù)快速調(diào)度方法,通過對(duì)地形瓦片數(shù)據(jù)的高程值進(jìn)行預(yù)處理,生成高程差值文件,從而減少了對(duì)周圍地形瓦片的調(diào)度次數(shù),能夠有效地加快平滑地形的速度。

1 OSGEarth簡介

OpenSceneGraph(OSG)是OpenGL 開發(fā)的開源三維渲染引擎。其核心功能主要包括場(chǎng)景管理和圖形繪制[3]。OSG 在虛擬現(xiàn)實(shí)、戰(zhàn)場(chǎng)仿真、三維數(shù)據(jù)可視化等領(lǐng)域之中有著非常廣泛的應(yīng)用。OSGEarth 是一個(gè)基于標(biāo)準(zhǔn)C++和OSG 3D 渲染引擎的開源軟件開發(fā)工具包,用于地形生成、模型數(shù)據(jù)加載和渲染。它可以從網(wǎng)絡(luò)或本地獲取地形數(shù)據(jù)和圖像數(shù)據(jù),并實(shí)時(shí)優(yōu)化、構(gòu)建和顯示,支持多個(gè)數(shù)據(jù)源的加載和管理[4]。OSGEarth 使用一種基于XML 格式的配置管理文件,可以從系統(tǒng)外部讀取本地文本文件加載地球數(shù)據(jù),開發(fā)人員可以手動(dòng)配置文本文件來加載所需的數(shù)據(jù),具有很強(qiáng)的靈活性。用戶添加的數(shù)據(jù)通過不同的場(chǎng)景層進(jìn)行加載和調(diào)度,便于數(shù)據(jù)管理。OSGEarth 提供了一種數(shù)據(jù)緩存機(jī)制。OSGEarth 可以將第一次加載的數(shù)據(jù)以緩存的形式保存到本地,第二次加載時(shí)先讀取緩存的數(shù)據(jù),提高了數(shù)據(jù)加載的效率。

OSGEarth 通過加載不同的數(shù)據(jù)源驅(qū)動(dòng)程序來加載數(shù)據(jù)源的。例如,調(diào)用GDAL 驅(qū)動(dòng)程序進(jìn)行影像加載和DEM 數(shù)據(jù)處理;基于TMS 協(xié)議,調(diào)用TMS 服務(wù)加載瓦片數(shù)據(jù)[5];調(diào)用ArcGIS 驅(qū)動(dòng)程序加載和顯示ArcGIS服務(wù)器所發(fā)布的數(shù)據(jù)。另外,OSGEarth 具有很強(qiáng)的可擴(kuò)展性,開發(fā)人員可以基于OSGEarth 編寫所需的數(shù)據(jù)源驅(qū)動(dòng)程序來加載相應(yīng)的數(shù)據(jù)。

2 LOD算法

為了實(shí)現(xiàn)大規(guī)模地形數(shù)據(jù)的實(shí)時(shí)可視化,目前的研究熱點(diǎn)主要包括大規(guī)模數(shù)據(jù)塊的數(shù)據(jù)調(diào)度、網(wǎng)格簡化、裂縫消除和視圖裁剪,其中,細(xì)節(jié)層次模型(Level Of Detail,LOD)[6]是近年來學(xué)者們的一個(gè)重要研究方向。在海量地形和模型數(shù)據(jù)的瀏覽方案中,經(jīng)常采用LOD 對(duì)其進(jìn)行劃分。細(xì)節(jié)層次(LOD)是提高模型顯示速度和降低場(chǎng)景復(fù)雜度的有效方法。LOD 根據(jù)對(duì)象模型節(jié)點(diǎn)在三維環(huán)境中的位置和重要性,確定了對(duì)象繪制的資源分配,減少了非重要對(duì)象的細(xì)節(jié),從而加快了場(chǎng)景的繪制。同樣,由于人眼視覺特性的影響,物體在不同位置的細(xì)節(jié)程度是完全不同的。根據(jù)人眼視覺差異的特點(diǎn),LOD 技術(shù)將場(chǎng)景中同一物體按照不同的細(xì)節(jié)層次建立一組幾何模型[7]。在進(jìn)行場(chǎng)景渲染的過程中,根據(jù)不同對(duì)象的位置,選擇具有相應(yīng)細(xì)節(jié)級(jí)別的模型來加載場(chǎng)景。也就是說,當(dāng)視點(diǎn)靠近對(duì)象時(shí),模型的精細(xì)部分被加載到視圖中;反之,當(dāng)視點(diǎn)遠(yuǎn)離對(duì)象時(shí),粗略模型部分被加載到視圖中。

3 地形數(shù)據(jù)高程值預(yù)處理

3.1 高程數(shù)據(jù)的獲取與組織

數(shù)字高程模型DEM(Digital Elevation Model)[8]是一個(gè)實(shí)體地面模型,以有序值數(shù)組的形式表示地面高程。它主要是描述區(qū)域地貌形態(tài)的空間分布,通過等高線或類似的三維模型進(jìn)行數(shù)據(jù)采集,然后進(jìn)行數(shù)據(jù)插值形成。通過STRM(Shuttle Radar Topography Mission),即航天飛機(jī)雷達(dá)地形測(cè)繪任務(wù)會(huì),本文獲取了格式為GeoTiff 的全球高程數(shù)據(jù),高程數(shù)據(jù)集共3.8G。

由于高程數(shù)據(jù)量大,需要將地形數(shù)據(jù)分割成矩形塊數(shù)據(jù),然后根據(jù)不同的級(jí)別和區(qū)域進(jìn)行命名,然后存儲(chǔ)在相應(yīng)的cache 文件夾中。每個(gè)地形瓦片數(shù)據(jù)包含17×17 個(gè)像素點(diǎn),以從左往右、從上到下的順序存儲(chǔ)了289 個(gè)數(shù)據(jù)。在3D 環(huán)境下加載高程數(shù)據(jù)時(shí),可以通過緩存索引文件直接加載到相應(yīng)的地形瓦片數(shù)據(jù)中。這種方法可以大大提高海量高程數(shù)據(jù)的加載和瀏覽效率[10]。OSGEarth 使用動(dòng)態(tài)四叉樹LOD 來組織地形高程數(shù)據(jù)。數(shù)據(jù)被分成不同層次的瓦片序列。層間數(shù)據(jù)采用四叉樹數(shù)據(jù)結(jié)構(gòu),類似于金字塔形狀。

金字塔模型如圖1 所示。

3.2 讀取地形高程數(shù)據(jù)

GDAL 是一個(gè)優(yōu)秀的開源庫,它為讀取、寫入、轉(zhuǎn)換和處理光柵數(shù)據(jù)格式提供了標(biāo)準(zhǔn)的二次開發(fā)接口,并且是一個(gè)完全開放的源代碼,它為開發(fā)人員進(jìn)行二次開發(fā)和底層功能擴(kuò)展提供了一個(gè)高起點(diǎn)[9]。獲取到地形高程數(shù)據(jù)后,使用GDAL 柵格空間數(shù)據(jù)轉(zhuǎn)換庫讀取地形瓦片數(shù)據(jù)的高程值,并調(diào)整高程數(shù)據(jù)的存儲(chǔ)順序,確保高程值的存儲(chǔ)順序和加載瓦片數(shù)據(jù)時(shí)讀取高程值的順序相同。讀取地形瓦片數(shù)據(jù)高程值的核心代碼如下:

3.3 生成高程差值文件

記需要進(jìn)行平滑處理的地形塊為中心地形瓦片c,使用GDAL 讀取中心地形瓦片數(shù)據(jù)及其周圍地形瓦片數(shù)據(jù)的高程值,周圍地形瓦片數(shù)據(jù)的高程值包括和中心地形瓦片據(jù)同一LOD 下的西北方、北方、東北方、西方、東方、西南方、南方和東南方單元的地形瓦片高程值。將中心地形瓦片的西北方、北方、東北方、西方、東方、西南方、南方和東南方單元地形瓦片分別記為nw、n、ne、w、e、sw、s 和se。

每個(gè)地形瓦片數(shù)據(jù)包含17×17 個(gè)像素點(diǎn),因此中心地形瓦片每條邊上有17 個(gè)邊界點(diǎn)。中心地形瓦片邊界點(diǎn)與周圍地形瓦片近邊界點(diǎn)的對(duì)應(yīng)關(guān)系如圖2 中虛線所示。

圖2 邊界點(diǎn)與近邊界點(diǎn)對(duì)應(yīng)關(guān)系示意圖

按照中心地形瓦片邊界點(diǎn)與周圍地形瓦片近邊界點(diǎn)的對(duì)應(yīng)關(guān)系,計(jì)算周圍地形瓦片近邊界點(diǎn)和中心地形瓦片邊界點(diǎn)的差值。每個(gè)高程差值文件存放72 個(gè)浮點(diǎn)數(shù)類型的高程差值數(shù)據(jù),共占用288 個(gè)字節(jié)。根據(jù)不同的LOD 級(jí)別和區(qū)域?qū)Ω叱滩钪滴募M(jìn)行命名,存儲(chǔ)在相對(duì)應(yīng)的文件夾中。

4 調(diào)度高程數(shù)據(jù)及平滑地形

4.1 地形平滑原理

要使光照應(yīng)用到地形上,首先需要計(jì)算法線。法線是定義表面對(duì)光的反應(yīng)的向量,即它是如何被照亮的。表面的光照強(qiáng)度與光線方向和法線之間的角度成正比。角度越小,表面看起來越亮。OpenGL 中可以定義為面法線和頂點(diǎn)法線。如果定義了面法線,那么法線通常被定義為正交于這個(gè)面的向量。與這個(gè)面共面的兩個(gè)向量叉乘的結(jié)果即為正交于面的法向量。另一個(gè)必要的步驟就是對(duì)向量進(jìn)行歸一化,即使其成為單位長度。歸一化需要計(jì)算向量的長度,再除以每個(gè)分量的長度。

在大規(guī)模地形可視化中,每個(gè)地形分塊的法線不同,不同方向的面的亮度之間有明顯的差異,導(dǎo)致地形看起來不平整。為了使地形更平滑,必須計(jì)算每個(gè)頂點(diǎn)的法線,而不是每個(gè)面的法線。當(dāng)計(jì)算一個(gè)頂點(diǎn)法線時(shí),必須考慮所有共享該頂點(diǎn)的面。如圖3 所示,每個(gè)面的頂點(diǎn)(不包括角落和邊界頂點(diǎn))都由四個(gè)多邊形共享。因此,這個(gè)頂點(diǎn)法線應(yīng)為所有共享面法線的和再歸一化的結(jié)果。

圖3 中心頂點(diǎn)的法線與共享面關(guān)系

圖3 中,v表示中心頂點(diǎn)的法線。vij表示每個(gè)共享面的法線。如v12是右下方面的單位長度的法線。頂點(diǎn)法線v被計(jì)算作為所有vij向量歸一化后的和。

4.2 基于OSGEarth調(diào)度高程值及平滑地形

OSGEarth 在平滑地形的過程中會(huì)調(diào)度周圍瓦片的所有數(shù)據(jù),而高程差值文件只保留了平滑地形需要的點(diǎn)的高程數(shù)據(jù),能夠避免調(diào)度過多地形瓦片數(shù)據(jù),因此能夠加速平滑過程。本文的算法首先在OSGEarth 中加載中心地形瓦片數(shù)據(jù),中心地形瓦片記為c。通過中心地形瓦片c 的編號(hào)調(diào)度其對(duì)應(yīng)的高程差值文件,讀取高程差值文件。通過高程差值和邊界點(diǎn)高程值求和算出c 周圍一圈點(diǎn)的高程值,即c 以外的西北方點(diǎn)、北方點(diǎn)、東北方點(diǎn)、西方點(diǎn)、東方點(diǎn)、西南方點(diǎn)、南方點(diǎn)和東南方點(diǎn)地形高程值。然后,通過獲取的地形高程值修改NDC 坐標(biāo)(標(biāo)準(zhǔn)化設(shè)備坐標(biāo))的Z 坐標(biāo)。

獲取到NDC 坐標(biāo)后,需要進(jìn)行坐標(biāo)系轉(zhuǎn)化。首先,將NDC 坐標(biāo)轉(zhuǎn)換為模型坐標(biāo)。模型建立坐標(biāo)系以物體的中心為坐標(biāo)原點(diǎn),物體的旋轉(zhuǎn)、平移等操作都在模型坐標(biāo)系內(nèi)進(jìn)行。然后將模型坐標(biāo)轉(zhuǎn)換成ECEF 坐標(biāo)(地心地固坐標(biāo)系),也就是OSGEarth 用于渲染圖像的坐標(biāo)系。在地心坐標(biāo)下,計(jì)算中心地形瓦片邊界點(diǎn)相關(guān)三角面片的法向量。最后,對(duì)中心地形塊邊界點(diǎn)上的法向量進(jìn)行歸一化處理,以快速平滑地形。

5 實(shí)驗(yàn)結(jié)果

為了驗(yàn)證該方法能快速平滑地形,本文進(jìn)行了相關(guān)實(shí)驗(yàn)。實(shí)驗(yàn)的硬件平臺(tái)CPU 為AMD A8-4500M APU with Radeon HD Graphics 四核,內(nèi)存為8GB,顯卡型號(hào)為AMD Radeon HD 7640G,開發(fā)工具為Visual Studio 2010,該實(shí)驗(yàn)渲染時(shí)的屏幕窗口大小為1024×768。測(cè)試數(shù)據(jù)為經(jīng)緯度在(85.07,28.49)附近地塊。

地形渲染效果的對(duì)比如圖4a~圖3c 所示。圖4a是沒有經(jīng)過平滑處理的地形場(chǎng)景,圖中的圓圈標(biāo)明了其中的一個(gè)分界線。圖4b 是OSGEarth 所用算法平滑后的地形場(chǎng)景。圖4c 是本文算法平滑后的地形場(chǎng)景。比較而言,地形未平滑時(shí)會(huì)產(chǎn)生明顯的分界線,經(jīng)過OSGEarth 所用算法和本文所提出的算法平滑后,分界線的問題得到了很大的改善,能夠平滑過渡,兩種算法的渲染效果并不存在明顯差異。因此,本文的算法能夠有效地解決地形渲染時(shí)出現(xiàn)的不平整問題。

圖4 渲染截圖

表1 給出了算法的平均耗時(shí)對(duì)比。

表1 算法的平均耗時(shí)對(duì)比

從表1 中可看出,當(dāng)平滑同樣數(shù)量的地形瓦片時(shí),本文所提出算法相比于OSGEarth 地形調(diào)度算法耗時(shí)更少,能夠快速平滑地形。

6 結(jié)語

本文介紹了OSGEarth 和LOD 算法,通過對(duì)地形數(shù)據(jù)高程值預(yù)處理,基于OSGEarth 實(shí)現(xiàn)大規(guī)模地形下高程數(shù)據(jù)的調(diào)度。在保證渲染效果的前提下,由于減少了地形平滑過程中大量不必要的數(shù)據(jù)調(diào)度,可以達(dá)到快速平滑地形的效果。實(shí)驗(yàn)結(jié)果表明,本文提出的方法與OSGEarth 平滑后的結(jié)果沒有明顯區(qū)別,但加載同樣數(shù)量的地形瓦片,能夠明顯縮短調(diào)度耗時(shí)。本文的算法能夠有效地提高地形瓦片的渲染效率,增加用戶的沉浸感。

猜你喜歡
瓦片模型
河水
遼河(2025年7期)2025-07-25 00:00:00
一半模型
打水漂
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
一種基于主題時(shí)空價(jià)值的服務(wù)器端瓦片緩存算法
慣性
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
基于NoSQL數(shù)據(jù)庫的瓦片地圖服務(wù)
主站蜘蛛池模板: 在线无码九区| 韩国自拍偷自拍亚洲精品| 亚洲国产精品不卡在线| 久久99国产乱子伦精品免| 免费一级大毛片a一观看不卡| 精品国产欧美精品v| 久久久精品无码一二三区| 精品五夜婷香蕉国产线看观看| 99热这里只有精品免费| 成年免费在线观看| 91亚洲国产视频| 国产97视频在线| 99精品在线视频观看| 亚洲精品另类| a级毛片一区二区免费视频| 国产精品天干天干在线观看| 亚洲国产成熟视频在线多多| 亚洲天堂网2014| 免费国产小视频在线观看| 国产一级毛片高清完整视频版| 日韩在线播放中文字幕| 中文字幕丝袜一区二区| 欧美成a人片在线观看| 亚洲无码熟妇人妻AV在线| 国产性生大片免费观看性欧美| 国产a在视频线精品视频下载| 亚洲69视频| 精品国产污污免费网站| 欧美日韩国产系列在线观看| 99热这里只有免费国产精品| 国产亚洲精品自在久久不卡| 国产成人综合在线观看| 午夜无码一区二区三区| 黄色国产在线| 中文字幕中文字字幕码一二区| 黄色国产在线| 超碰91免费人妻| 日韩精品亚洲人旧成在线| 日本道中文字幕久久一区| 91精品国产自产91精品资源| www成人国产在线观看网站| 精品免费在线视频| 国产丝袜丝视频在线观看| 伊人久久青草青青综合| 亚洲精品自产拍在线观看APP| 国产一区在线观看无码| 欧美一级大片在线观看| 国产黑丝视频在线观看| 国产人人射| 日本精品视频一区二区| 欧美日韩成人在线观看| 欧美区一区| 99这里只有精品免费视频| 91久久精品日日躁夜夜躁欧美| 欧美日韩亚洲综合在线观看| 欧美成人免费午夜全| 九九热视频精品在线| 日韩毛片视频| 国产一区二区三区在线观看视频 | 国产成人亚洲毛片| 精品少妇人妻无码久久| 中文字幕中文字字幕码一二区| 日本免费新一区视频| 一本无码在线观看| 国产又粗又爽视频| 精品国产自在在线在线观看| 国产xxxxx免费视频| 日本欧美成人免费| 国产欧美日韩另类| 天天综合网站| 无码一区中文字幕| 无码中文字幕乱码免费2| 国产一级片网址| 国产又黄又硬又粗| 99久久国产精品无码| 国产精品亚洲一区二区三区z| 亚洲综合第一页| 精品久久久久久中文字幕女 | 国内精品久久人妻无码大片高| 国产av色站网站| 久草中文网| 亚洲国产亚洲综合在线尤物|