• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Cesium時(shí)空三維可視化的數(shù)據(jù)調(diào)度與緩存機(jī)制

    2022-01-11 09:33:02徐明瑞肖桂榮
    科學(xué)技術(shù)與工程 2021年35期
    關(guān)鍵詞:瓦片武夷山視點(diǎn)

    徐明瑞, 肖桂榮

    (福州大學(xué)數(shù)字中國(guó)研究院(福建), 福州 350108)

    傳統(tǒng)三維可視化受制于數(shù)據(jù)調(diào)度緩慢、集成度較低、信息化形式單一等問(wèn)題,未能實(shí)現(xiàn)真正意義上的集成多種數(shù)據(jù)源數(shù)據(jù)的三維可視化。隨著新一代數(shù)字地球、WebGL、三維GIS(geographic information system)等技術(shù)的深入發(fā)展,多種領(lǐng)域開(kāi)始通過(guò)構(gòu)建三維虛擬仿真平臺(tái)來(lái)集成、模擬、管理多源地理信息和數(shù)據(jù)。國(guó)家公園具有物種、地理、生態(tài)等數(shù)據(jù)復(fù)雜多樣性的區(qū)域特點(diǎn),引入時(shí)空三維可視化是目前首批試點(diǎn)的國(guó)家公園數(shù)字化建設(shè)的一種重要應(yīng)用方式,是國(guó)家公園體制建設(shè)的重要基礎(chǔ)[1]。如何對(duì)國(guó)家公園大規(guī)模、多尺度的地理空間分布特征和生態(tài)環(huán)境監(jiān)測(cè)指標(biāo)等多源數(shù)據(jù)進(jìn)行高效的集成管理,并在三維實(shí)景環(huán)境中進(jìn)行流暢、快速的調(diào)度是目前亟待解決的問(wèn)題。

    目前通過(guò)三維可視化進(jìn)行國(guó)家公園管理方案的設(shè)計(jì)尚處在試點(diǎn)階段,已經(jīng)運(yùn)用到應(yīng)用層面的較少。王麗娟等[2]基于ArcGIS、PostgreSQL設(shè)計(jì)并開(kāi)發(fā)了三江源國(guó)家公園信息化平臺(tái),實(shí)現(xiàn)了三江源國(guó)家公園電子地圖展示、公園信息概覽、物種預(yù)測(cè)等功能。朱清等[3]提出黃山時(shí)空信息云平臺(tái)的整體設(shè)計(jì),通過(guò)構(gòu)建時(shí)空大數(shù)據(jù)挖掘系統(tǒng),建立知識(shí)服務(wù)與云服務(wù)體系,應(yīng)用于智能感知時(shí)空數(shù)據(jù)匯聚展示。邱天等[4]提出采用Vue框架管理多源數(shù)據(jù),組件式開(kāi)發(fā)祁連山國(guó)家公園三維WebGIS的思路。但這些案例通常采用地圖與文字的單一結(jié)合,與三維場(chǎng)景的集成度不高,未解決三維場(chǎng)景繪制效率低、數(shù)據(jù)調(diào)度加載慢等問(wèn)題。現(xiàn)通過(guò)基于底層WebGL技術(shù)并繼承WebGL的優(yōu)良特性的三維圖形引擎Cesium[5],從多源數(shù)據(jù)的組織管理、Web端的動(dòng)態(tài)加載調(diào)度以及實(shí)時(shí)渲染過(guò)程中的緩存機(jī)制出發(fā),提出雙線程數(shù)據(jù)調(diào)度策略,并建立二級(jí)緩存機(jī)制與數(shù)據(jù)瓦片更新策略,實(shí)現(xiàn)對(duì)國(guó)家公園多源數(shù)據(jù)的快速調(diào)度和三維場(chǎng)景的流暢表達(dá)。

    1 數(shù)據(jù)處理與模型搭建

    武夷山國(guó)家公園位于福建省武夷山脈的北部,涉及福建省武夷山市、建陽(yáng)區(qū)、光澤縣和邵武市(均為南平市行政范圍),總面積約為1 001.41 km2,園內(nèi)包括國(guó)家級(jí)自然保護(hù)區(qū)、風(fēng)景名勝區(qū)和介于二者之間的過(guò)渡區(qū)(九曲溪上游保護(hù)地帶),是世界同緯度帶最典型、最完整、面積最大的中亞熱帶原生性森林生態(tài)系統(tǒng)[6]?,F(xiàn)有的武夷山國(guó)家公園數(shù)據(jù)需要從不同的途徑進(jìn)行收集獲得,導(dǎo)致數(shù)據(jù)來(lái)源途徑廣,格式不統(tǒng)一。因此結(jié)合三維GIS、Cesium技術(shù)的優(yōu)勢(shì),將不同坐標(biāo)系以及不滿足加載格式需求的多源數(shù)據(jù)進(jìn)行規(guī)范整合,并進(jìn)行參數(shù)化集成。通過(guò)對(duì)這些數(shù)據(jù)有效的存儲(chǔ)、轉(zhuǎn)換和調(diào)用,為研究武夷山國(guó)家公園時(shí)空三維可視化及生態(tài)保護(hù)管理奠定研究基礎(chǔ)。如圖1所示。其中多源數(shù)據(jù)包含矢量數(shù)據(jù)、地形數(shù)據(jù)、專(zhuān)題圖與交互圖表、監(jiān)測(cè)數(shù)據(jù)等。

    圖1 武夷山國(guó)家公園多源數(shù)據(jù)Fig.1 Multi-source data of Wuyi mountain national park

    1.1 TopoJSON數(shù)據(jù)轉(zhuǎn)換

    武夷山國(guó)家公園數(shù)據(jù)庫(kù)包含了園區(qū)區(qū)劃邊界、功能區(qū)劃矢量圖、交通、水系、植被、監(jiān)測(cè)站點(diǎn)等點(diǎn)線面要素構(gòu)成的GIS矢量數(shù)據(jù)。由于這些GIS矢量數(shù)據(jù)是Cesium無(wú)法直接加載的Shp格式,因此將GIS矢量數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)預(yù)處理轉(zhuǎn)換成Cesium能夠傳輸加載的JSON格式至關(guān)重要。GIS服務(wù)器負(fù)責(zé)從數(shù)據(jù)庫(kù)提取相關(guān)空間數(shù)據(jù)并將相關(guān)矢量格式轉(zhuǎn)換成JSON格式,GeoJSON是Web端傳輸過(guò)程中常見(jiàn)的基于JSON的網(wǎng)絡(luò)矢量交換格式。GeoJSON的幾何對(duì)象包括點(diǎn)、線、面以及由以上類(lèi)型組合成的復(fù)合幾何圖形來(lái)表示矢量要素[7]。然而在面對(duì)國(guó)家公園有拓?fù)潢P(guān)系需求的矢量要素進(jìn)行展示時(shí)GeoJSON表達(dá)能力以及傳輸效率存在明顯不足,尤其是國(guó)家公園矢量數(shù)據(jù)需要拓?fù)浠倪^(guò)程中,難以保證要素之間的關(guān)系不發(fā)生變化。

    為了改善這一問(wèn)題,采用對(duì)多邊形覆蓋較好的TopoJSON格式作為矢量傳輸格式。TopoJSON是在GeoJSON的基礎(chǔ)上進(jìn)行擴(kuò)展對(duì)拓?fù)溥M(jìn)行編碼,允許簡(jiǎn)化保留拓?fù)涞男螤?,從而確保相鄰特征在簡(jiǎn)化后保持連接,共享的弧段僅存儲(chǔ)一次消除了數(shù)據(jù)冗余,相比GeoJSON最多可以節(jié)省80%的存儲(chǔ)空間。通過(guò)數(shù)據(jù)處理工具CesiumLab將基礎(chǔ)空間數(shù)據(jù)包含行政區(qū)劃、功能區(qū)劃矢量圖、道路、水系、居民地、植被等shp文件轉(zhuǎn)化為T(mén)opoJSON格式,按照TopoJSON的層次對(duì)獲取到的矢量數(shù)據(jù)進(jìn)行解析,使用TopoJSONDataSource對(duì)象的加載方法,并在其對(duì)象的DynamicObjectCollection中添加創(chuàng)建對(duì)象。解析完成之后,通過(guò)函數(shù)Cesium.Topojs.load將經(jīng)過(guò)轉(zhuǎn)換的矢量數(shù)據(jù)存入Cesium的數(shù)據(jù)源集合中。最后根據(jù)矢量要素的幾何類(lèi)型,創(chuàng)建對(duì)應(yīng)類(lèi)型的幾何對(duì)象,并添加到三維場(chǎng)景viewer.scence對(duì)象的Collection屬性中,完成矢量數(shù)據(jù)向TopoJSON格式的轉(zhuǎn)換與三維可視化加載。

    1.2 基于八叉樹(shù)的三維數(shù)據(jù)組織模型

    Cesium圖形引擎本身支持STK World Terrain和Small Terrain兩種由流式傳輸瓦片數(shù)據(jù)構(gòu)成的基于mesh的地形類(lèi)型[8]。STK World Terrain支持Cesiumion在線訪問(wèn),但是由于該地形服務(wù)部署于外網(wǎng),因數(shù)據(jù)量龐大受帶寬和網(wǎng)絡(luò)環(huán)境影響明顯,導(dǎo)致應(yīng)用過(guò)程中頁(yè)面卡頓、無(wú)法加載等問(wèn)題。由于地形的構(gòu)建一般不會(huì)構(gòu)建全球級(jí)別的地形數(shù)據(jù),通常只構(gòu)建感興趣的區(qū)域數(shù)據(jù)[9]。通過(guò)選擇武夷山國(guó)家公園區(qū)域的數(shù)字高程模型(digital elevation model, DEM),經(jīng)過(guò)數(shù)據(jù)預(yù)處理疊加數(shù)字正射影像(digital orthophoto map, DOM)生成Small Terrain,并基于八叉樹(shù)金字塔結(jié)構(gòu)實(shí)現(xiàn)對(duì)地形數(shù)據(jù)的分層分塊,將預(yù)處理后的數(shù)據(jù)以二進(jìn)制的方式存儲(chǔ)到數(shù)據(jù)庫(kù)中,并設(shè)置相關(guān)索引,根據(jù)索引提取資源管理隊(duì)列中的地形數(shù)據(jù),按照請(qǐng)求實(shí)現(xiàn)地形數(shù)據(jù)的三維場(chǎng)景繪制渲染。

    八叉樹(shù)結(jié)構(gòu)的地形金字塔模型的構(gòu)建原理與四叉樹(shù)結(jié)構(gòu)思路相似,區(qū)別在于基于八叉樹(shù)處理的基本單元是立方體而非矩形,即進(jìn)行合并、分割的操作單元是立方體。如圖2所示,自上而下每一層的節(jié)點(diǎn)都是其下一層8個(gè)節(jié)點(diǎn)的像素合成,在表示范圍不變的情況下,分辨率越來(lái)越低,尺寸越來(lái)越小。

    圖2 八叉樹(shù)金字塔結(jié)構(gòu)Fig.2 Octree pyramid structure

    將原始地形作為八叉樹(shù)金字塔結(jié)構(gòu)的最底層,可以根據(jù)地形尺寸的大小,確定一個(gè)完全包圍地形大小的2N×2N的范圍,獲取地形數(shù)據(jù)尺寸的最長(zhǎng)邊terrian_max及高程數(shù)據(jù)中的最大值dem_max,由terrian_max/(dem_max-1)計(jì)算得到包含的高程子塊個(gè)數(shù)k,然后求得2N×k的像素值落在具體的層級(jí)取正整數(shù),即可得到地形塊的大小。對(duì)于下一層級(jí)的地形分辨率是上一級(jí)地形分辨率的1/8為前提,則通過(guò)CesiumLab工具庫(kù)的八叉樹(shù)處理器重復(fù)實(shí)現(xiàn),直至子塊不能分割最頂層數(shù)據(jù)塊分割時(shí)停止。

    與適用于二維場(chǎng)景的四叉樹(shù)結(jié)構(gòu)相比,八叉樹(shù)結(jié)構(gòu)能夠更好地應(yīng)用于三維地形場(chǎng)景的快速幾何運(yùn)算,結(jié)合八叉樹(shù)結(jié)構(gòu)對(duì)地形數(shù)據(jù)的分塊,能夠?qū)崿F(xiàn)快速進(jìn)行最鄰近區(qū)域或點(diǎn)的搜索[10]。利用CesiumLab將Web前端無(wú)法直接解析的數(shù)值高程模型TIFF格式使用ctb-tile指令加工成terrain文件,配置于CTB(cesium-terrain-builder)環(huán)境中,并部署于服務(wù)器端,通過(guò)Cesium接口調(diào)用得到分層分級(jí)顯示的地形數(shù)據(jù),能夠便于客戶端解析以及文件傳輸。相比于STK World Terrain的30 m分辨率,生成后的Small Terrain 90 m分辨率雖然略遜一籌,但是武夷山國(guó)家公園區(qū)域內(nèi)96%的面積為山地和植被,對(duì)分辨率要求不高,滿足本文中實(shí)現(xiàn)數(shù)據(jù)的本地部署和三維展示的研究,如圖3所示為山區(qū)地形效果圖。

    圖3 山區(qū)地形效果圖Fig.3 Effect map of mountainous terrain

    2 多源數(shù)據(jù)調(diào)度與緩存策略

    2.1 雙線程數(shù)據(jù)調(diào)度策略

    三維場(chǎng)景實(shí)時(shí)繪制過(guò)程中,執(zhí)行具體繪制操作的同時(shí)還需要根據(jù)視點(diǎn)位置等信息對(duì)參與繪制的數(shù)據(jù)進(jìn)行調(diào)度。數(shù)據(jù)調(diào)度的效率在大范圍的三維場(chǎng)景實(shí)時(shí)漫游過(guò)程中至關(guān)重要,一方面數(shù)據(jù)調(diào)度的效率取決于隨視點(diǎn)信息變化而變化的場(chǎng)景數(shù)據(jù)調(diào)度次數(shù),另一方面取決于執(zhí)行相關(guān)繪制操作的時(shí)間。目前三維場(chǎng)景數(shù)據(jù)調(diào)度策略面臨數(shù)據(jù)I/O讀取時(shí)間過(guò)長(zhǎng)、跳幀現(xiàn)象以及內(nèi)存數(shù)據(jù)量無(wú)法動(dòng)態(tài)平衡等三個(gè)主要問(wèn)題[11]。從三維場(chǎng)景繪制過(guò)程中穩(wěn)定性和流暢性出發(fā),提出繪制線程與調(diào)度線程并行的雙線程數(shù)據(jù)調(diào)度策略,具體流程如圖4所示。

    圖4 雙線程數(shù)據(jù)調(diào)度Fig.4 Two-threaded data scheduling

    雙線程數(shù)據(jù)調(diào)度策略即包括以繪制線程為主線程,調(diào)度線程為副線程的兩種并行調(diào)度模式。

    (1)在調(diào)度線程中,任務(wù)列表首先會(huì)根據(jù)實(shí)時(shí)任務(wù)信息生成相應(yīng)的參數(shù)請(qǐng)求,更新當(dāng)前相機(jī)視點(diǎn)的位置坐標(biāo)初始化加載區(qū)域。然后根據(jù)緩沖區(qū)讀寫(xiě)原則,判斷是否需要調(diào)度相應(yīng)瓦片數(shù)據(jù)加載至緩沖區(qū)。最后在數(shù)據(jù)加載之前將相應(yīng)瓦片對(duì)象調(diào)入瓦片隊(duì)列中,根據(jù)瓦片分類(lèi)管理機(jī)制對(duì)瓦片進(jìn)行分層管路和控制,完成對(duì)數(shù)據(jù)的調(diào)度任務(wù)。

    (2)在繪制線程中,首先經(jīng)過(guò)視點(diǎn)裁剪變化更新初始化區(qū)域,把緩沖區(qū)內(nèi)視景體瓦片節(jié)點(diǎn)的編碼和地形數(shù)據(jù)調(diào)入可視區(qū)域申請(qǐng)隊(duì)列中。然后根據(jù)視點(diǎn)距離判斷經(jīng)過(guò)遍歷可視化區(qū)域內(nèi)的瓦片是否需要進(jìn)一步劃分,若不劃分則直接從緩沖區(qū)調(diào)入相應(yīng)瓦片數(shù)據(jù),若需要?jiǎng)澐郑瑒t另外創(chuàng)建一個(gè)堆棧,將該瓦片壓入堆棧,并進(jìn)行八叉樹(shù)劃分,劃分結(jié)束之后彈出該節(jié)點(diǎn)。對(duì)于新產(chǎn)生的八個(gè)節(jié)點(diǎn),按照逆時(shí)針重復(fù)劃分步驟,直至所有節(jié)點(diǎn)都完全成為葉子節(jié)點(diǎn)。最后根據(jù)葉子節(jié)點(diǎn)所在瓦片的索引信息,解析出相應(yīng)的層級(jí)、行號(hào)TileX、列號(hào)TileY等信息,并將其加載至顯存中用于繪制。當(dāng)?shù)却?duì)列中所有的瓦片請(qǐng)求全部執(zhí)行完成上述步驟后,則清空隊(duì)列,同時(shí)作為下一幀開(kāi)始的請(qǐng)求隊(duì)列使用。

    2.2 二級(jí)緩存渲染機(jī)制

    三維場(chǎng)景漫游過(guò)程中僅僅只有數(shù)據(jù)調(diào)度策略還不夠,受內(nèi)存大小的限制,即便將常用的數(shù)據(jù)篩選出來(lái),在長(zhǎng)時(shí)間漫游過(guò)程中仍然會(huì)產(chǎn)生大量冗余數(shù)據(jù)。實(shí)時(shí)渲染過(guò)程中的數(shù)據(jù)需要預(yù)先從外存調(diào)入內(nèi)存,然后再?gòu)膬?nèi)存中傳入到GPU(graphics processing unit)渲染管線,龐大的數(shù)據(jù)量不僅需要巨大的外存空間用于內(nèi)外存之間的頻繁調(diào)度,還需要較高的內(nèi)存用于網(wǎng)絡(luò)環(huán)境下的繪制渲染,在這一過(guò)程中任何一個(gè)階段出現(xiàn)問(wèn)題都會(huì)導(dǎo)致渲染效率低下。為了減輕服務(wù)器的負(fù)擔(dān)和提高顯示速度,通過(guò)在內(nèi)存中設(shè)定一定大小的緩沖區(qū)建立二級(jí)緩存機(jī)制,將相關(guān)的數(shù)據(jù)暫存入緩沖區(qū),從一定程度緩解實(shí)時(shí)渲染過(guò)程中I/O壓力,同時(shí)能夠提高實(shí)時(shí)渲染效率。

    二級(jí)緩存機(jī)制與上一節(jié)雙線程數(shù)據(jù)調(diào)度策略對(duì)照呼應(yīng),其目的是為了緩解實(shí)時(shí)渲染過(guò)程中數(shù)據(jù)I/O頻繁的問(wèn)題。其中第一級(jí)緩存的理論依據(jù)是操作系統(tǒng)局部性原理[12],即CPU(central processing unit)在讀取存儲(chǔ)器數(shù)據(jù)時(shí),被訪問(wèn)的數(shù)據(jù)單元都需要趨于集中在一個(gè)連續(xù)的較小區(qū)域內(nèi),隨著視點(diǎn)位置的變化,在連續(xù)的幾幀中,視域內(nèi)的瓦片塊重復(fù)出現(xiàn)的概率較高。因此將這一類(lèi)瓦片數(shù)據(jù)放在第一級(jí)緩存內(nèi)可以有效地存儲(chǔ)在鄰近幀率中重復(fù)使用的瓦片概率,減少了重復(fù)調(diào)度的渲染時(shí)間。第二級(jí)緩存設(shè)計(jì)是通過(guò)GPU對(duì)相關(guān)數(shù)據(jù)的頂點(diǎn)、法線、圖元和索引等要素進(jìn)行編譯與加載處理,將經(jīng)過(guò)編譯的瓦片數(shù)據(jù)存放于能夠被GPU渲染隊(duì)列快速調(diào)度的瓦片緩沖區(qū)中,從而減少因?yàn)橐朁c(diǎn)的拉伸縮放而需GPU重復(fù)編譯與加載的時(shí)間。

    本文中建立的二級(jí)緩存機(jī)制中GPU渲染管線、外存數(shù)據(jù)與二級(jí)緩存三者之間的關(guān)系如圖5所示,當(dāng)視域變換后,根據(jù)視點(diǎn)判斷當(dāng)前范圍內(nèi)是否需要載入某一數(shù)據(jù)的請(qǐng)求,首先會(huì)從二級(jí)緩存隊(duì)列中查找相關(guān)數(shù)據(jù),根據(jù)當(dāng)前視域數(shù)據(jù)判斷結(jié)果,系統(tǒng)指令將會(huì)依次在一級(jí)緩存隊(duì)列和外存隊(duì)列中繼續(xù)查找,直至成功調(diào)度到相關(guān)數(shù)據(jù)后,將數(shù)據(jù)交給GPU渲染管線進(jìn)行實(shí)時(shí)渲染處理,主要包括頂點(diǎn)、圖元、片元的處理,最終輸出圖像。

    對(duì)于本文中武夷山國(guó)家公園的縣市級(jí)數(shù)據(jù)而言,預(yù)處理后的高程數(shù)據(jù)瓦片塊大小為65×65,瓦片塊包含行號(hào)、列號(hào)、層號(hào)及高程值等信息,對(duì)應(yīng)的影像數(shù)據(jù)子塊大小為1 024×1 024,由此計(jì)算出每一影像數(shù)據(jù)子塊大小為3.01 MB。可見(jiàn),在內(nèi)存中分配約100個(gè)瓦片數(shù)據(jù)塊,即設(shè)置300 MB大小的緩沖區(qū)即可同時(shí)保存相對(duì)應(yīng)的高程、影像及索引信息。同時(shí)通過(guò)最小堆棧結(jié)構(gòu)實(shí)現(xiàn)緩沖區(qū)中瓦片數(shù)據(jù)塊的優(yōu)先級(jí)的升降,實(shí)現(xiàn)每隔一段時(shí)間緩存隊(duì)列數(shù)據(jù)的更新。

    2.3 瓦片數(shù)據(jù)更新策略

    在三維地形動(dòng)態(tài)可視化過(guò)程中,需要根據(jù)相機(jī)視點(diǎn)位置,更新動(dòng)態(tài)可視化的地形瓦片數(shù)據(jù),從而實(shí)現(xiàn)三維地形的實(shí)時(shí)更新。根據(jù)八叉樹(shù)金字塔結(jié)構(gòu),具體的可視化判斷是從第0層地形模型開(kāi)始,當(dāng)視點(diǎn)距離達(dá)到第N層時(shí),判斷視點(diǎn)到該層級(jí)第x行y列的瓦片Tn,x,y的視點(diǎn)距離dn,x,y與給定的閾值tn進(jìn)行比較,若該距離在閾值區(qū)間內(nèi)則顯示該瓦片數(shù)據(jù)并停止判斷,否則進(jìn)入該瓦片數(shù)據(jù)的子節(jié)點(diǎn)繼續(xù)判斷。其中視點(diǎn)距離與閾值比較的區(qū)間是[tn,∞],而非[tn,tn-1],這是由于在層級(jí)變化過(guò)程中八叉樹(shù)節(jié)點(diǎn)的Tn,x,y與Tn-1,x,y位置中心并不相同,按照后者閾值進(jìn)行判斷將會(huì)造成某些瓦片無(wú)法完全顯示。

    瓦片數(shù)據(jù)更新過(guò)程中視點(diǎn)距離閾值的設(shè)置,根據(jù)屏幕像素作為標(biāo)準(zhǔn),即屏幕像素上的n個(gè)像素需要tn將三維地形中n個(gè)頂點(diǎn)與之對(duì)應(yīng),則

    (1)

    式(1)中:α為場(chǎng)景在垂直方向的夾角,通常為45°~60°;p為α相應(yīng)維度的分辨率,通常為列分辨率;rn為N層地形模型的分辨率。

    3 實(shí)驗(yàn)驗(yàn)證

    3.1 渲染流暢性

    為了驗(yàn)證本文數(shù)據(jù)調(diào)度策略與緩存方案在多源數(shù)據(jù)集成的三維可視化場(chǎng)景渲染過(guò)程的流暢性,在Cesium三維可視化場(chǎng)景漫游過(guò)程中開(kāi)展相關(guān)實(shí)驗(yàn)。采用每秒渲染幀數(shù) (frame per second,F(xiàn)PS)是有效檢測(cè)渲染性能的方法,F(xiàn)PS的數(shù)值代表著圖像每秒被渲染刷新的次數(shù),反映了場(chǎng)景的流暢程度。FPS<15時(shí)場(chǎng)景顯示卡頓,F(xiàn)PS>30時(shí)人眼視覺(jué)才會(huì)流暢,通常認(rèn)為三維場(chǎng)景漫游過(guò)程中FPS的值不應(yīng)低于30[13]。通過(guò)記錄三維場(chǎng)景實(shí)時(shí)繪制漫游過(guò)程中,實(shí)施雙線程調(diào)度策略與二級(jí)緩存機(jī)制后場(chǎng)景渲染的FPS和幀數(shù),并與傳統(tǒng)方法的加載結(jié)果進(jìn)行對(duì)比,得到Web頁(yè)面幀率統(tǒng)計(jì)結(jié)果如圖6所示。

    圖6 Web繪制統(tǒng)計(jì)Fig.6 Web drawing statistics

    根據(jù)在時(shí)空三維可視化場(chǎng)景漫游實(shí)時(shí)渲染繪制過(guò)程中的幀數(shù)和實(shí)時(shí)幀率變化情況顯示,隨頁(yè)面初始階段請(qǐng)求耗時(shí)與渲染準(zhǔn)備逐步進(jìn)行,幀率逐漸增加,當(dāng)場(chǎng)景數(shù)據(jù)加載至消耗完畢后,F(xiàn)PS基本維持在45左右,且不受每幀繪制數(shù)目的影響。相對(duì)于傳統(tǒng)方法的繪制結(jié)果,每一幀都有一定幅度的優(yōu)化,達(dá)到了完全流暢漫游的條件,即滿足了數(shù)據(jù)調(diào)度與實(shí)時(shí)渲染的平衡要求。

    3.2 場(chǎng)景加載效率

    本次實(shí)驗(yàn)漫游場(chǎng)景區(qū)域面積1 001.41 km2,DEM大小13 MB,高程子塊大小65×65,影像數(shù)據(jù)1.3 GB,地圖影像尺寸是256×256像素。實(shí)驗(yàn)記錄在45左右的場(chǎng)景漫游過(guò)程中,隨視點(diǎn)緩慢、無(wú)遠(yuǎn)距離跳躍式移動(dòng)的情況下,Web場(chǎng)景請(qǐng)求加載數(shù)據(jù)量、實(shí)時(shí)加載數(shù)據(jù)量以及調(diào)度時(shí)間的變化情況,具體情況如表1所示。

    表1 場(chǎng)景數(shù)據(jù)加載量及調(diào)度時(shí)間Table 1 Scene data loading and scheduling time

    由表1可知,隨著第一幀開(kāi)始,所有的數(shù)據(jù)在實(shí)時(shí)加載之前,緩沖區(qū)內(nèi)為空,實(shí)時(shí)加載的數(shù)據(jù)量等于請(qǐng)求加載的數(shù)據(jù)量。隨著時(shí)間的進(jìn)程,緩沖區(qū)中已經(jīng)存在部分可視區(qū)域范圍內(nèi)的數(shù)據(jù),這些數(shù)據(jù)將會(huì)根據(jù)二級(jí)緩存機(jī)制存入一二級(jí)緩沖區(qū)中,無(wú)需重復(fù)調(diào)度與加載,因此實(shí)時(shí)加載數(shù)據(jù)量不一定等于請(qǐng)求加載數(shù)據(jù)量,實(shí)時(shí)加載所需的數(shù)據(jù)量位于緩存區(qū)中無(wú)需再重復(fù)調(diào)度,直到下一個(gè)數(shù)據(jù)命令請(qǐng)求重新開(kāi)始。

    為了更形象直觀地反映變化過(guò)程,將表1中的數(shù)據(jù)以折線圖的形式展現(xiàn),如圖7所示。場(chǎng)景調(diào)度開(kāi)始的第1幀,數(shù)據(jù)調(diào)度消耗時(shí)間最長(zhǎng),因?yàn)橐朁c(diǎn)再緩慢的移動(dòng)過(guò)程中請(qǐng)求加載數(shù)據(jù)與實(shí)時(shí)加載數(shù)據(jù)的變化不大,同時(shí)實(shí)時(shí)加載的數(shù)據(jù)量決定了調(diào)度時(shí)間,相較于第一幀之后的幀平均調(diào)度時(shí)間大幅下降,平均調(diào)度時(shí)間為0.111 s,而人眼視覺(jué)的暫留時(shí)間為0.05~0.2 s[14],所以本文系統(tǒng)場(chǎng)景能夠達(dá)到平滑流暢的漫游條件。根據(jù)實(shí)驗(yàn)結(jié)果顯示,本文中數(shù)據(jù)調(diào)度策略與二級(jí)緩存機(jī)制能夠有效減少實(shí)時(shí)加載的數(shù)據(jù)量,縮短場(chǎng)景繪制時(shí)間,驗(yàn)證了本文方法的可行性,在數(shù)據(jù)快速調(diào)度與場(chǎng)景繪制效率方面有優(yōu)勢(shì)。

    圖7 數(shù)據(jù)加載量及調(diào)度時(shí)間圖Fig.7 Data loading and scheduling time chart

    4 系統(tǒng)實(shí)現(xiàn)與終端展示

    4.1 系統(tǒng)設(shè)計(jì)與研發(fā)

    為實(shí)現(xiàn)武夷山國(guó)家公園多源信息數(shù)據(jù)在三維場(chǎng)景有效表達(dá),對(duì)經(jīng)過(guò)預(yù)處理的多源數(shù)據(jù)結(jié)合雙線程數(shù)據(jù)調(diào)度策略與二級(jí)緩存機(jī)制,選用Inter(R) Core(TM) i7-7700 CPU @ 3.60GHz系統(tǒng),16 GB內(nèi)存,2 GB顯存,VS Code編譯器、Apache服務(wù)器等實(shí)驗(yàn)配置,搭載三維圖形引擎Cesium進(jìn)行Web端系統(tǒng)開(kāi)發(fā)。系統(tǒng)客戶端由HTML和JavaScript建立,主要負(fù)責(zé)解析服務(wù)器端發(fā)送的JSON文件,由WebGL提供JavaScript接口,通過(guò)指令程序調(diào)用JSON對(duì)象生成繪制信息,并將指令傳遞給CPU、GPU處理,渲染繪制結(jié)果最終呈現(xiàn)在瀏覽器頁(yè)面中。系統(tǒng)采用分層設(shè)計(jì)方案,整體架構(gòu)包括基礎(chǔ)層、數(shù)據(jù)層、服務(wù)層、展示層和用戶層,系統(tǒng)架構(gòu)如圖8所示。

    圖8 系統(tǒng)架構(gòu)Fig.8 System architecture

    系統(tǒng)主界面是依托Cesium圖形引擎以瀏覽器端數(shù)字地球?yàn)檩d體,使用天地圖和高德等離線切片遙感影像數(shù)據(jù),加載地形切片數(shù)據(jù)為三維場(chǎng)景底圖數(shù)據(jù),如圖9和圖10所示包含 “圖層目錄”“數(shù)據(jù)目錄”“場(chǎng)景漫游”和“周邊搜索”等功能交互按鈕 ,提供了在Web端數(shù)字地球上展示物種信息查詢、監(jiān)測(cè)信息時(shí)空可視化、專(zhuān)題信息統(tǒng)計(jì)、周邊搜索、三維漫游等功能,專(zhuān)題統(tǒng)計(jì)數(shù)據(jù)與監(jiān)測(cè)信息的可視化具有動(dòng)態(tài)和交互的特征,能夠在三維場(chǎng)景中進(jìn)行地理信息數(shù)據(jù)的交互展示。

    圖9 系統(tǒng)初始化頁(yè)面Fig.9 System initialization page

    圖10 系統(tǒng)繪制加載頁(yè)面Fig.10 System drawing loading page

    4.2 跨終端展示

    在Cesium圖形引擎中集成武夷山國(guó)家公園多源數(shù)據(jù)進(jìn)行三維展示,經(jīng)終端實(shí)際測(cè)試,在PC端、手機(jī)及平板電腦端均可展示武夷山國(guó)家公園的多源數(shù)據(jù)信息,實(shí)現(xiàn)了對(duì)武夷山國(guó)家公園的全面化智慧管理與跨終端展示。在系統(tǒng)展示頁(yè)面設(shè)計(jì)了國(guó)家公園各類(lèi)多源數(shù)據(jù)的交互功能,已實(shí)現(xiàn)的交互功能包括光照分析、卷簾分析、時(shí)空查詢、周邊搜索、場(chǎng)景漫游等,實(shí)現(xiàn)了對(duì)武夷山國(guó)家公園物種信息數(shù)據(jù)、空間地理信息數(shù)據(jù)、監(jiān)測(cè)數(shù)據(jù)等時(shí)空三維可視化展示,支撐起武夷山國(guó)家公園的全面數(shù)字化管理,如圖11所示,分別為移動(dòng)端的系統(tǒng)展示圖。

    圖11 移動(dòng)端系統(tǒng)展示Fig.11 Mobile system display

    5 結(jié)論

    采用TopoJSON作為Web端矢量傳輸格式、專(zhuān)題圖與交互圖表作為專(zhuān)題統(tǒng)計(jì)數(shù)據(jù)表達(dá)形式,在此基礎(chǔ)上通過(guò)八叉樹(shù)結(jié)構(gòu)建立三維地形,實(shí)現(xiàn)了多分辨率的場(chǎng)景創(chuàng)建。另外通過(guò)建立雙線程數(shù)據(jù)調(diào)度策略、二級(jí)緩存機(jī)制以及瓦片更新策略,保證了場(chǎng)景繪制的流暢性,提高了數(shù)據(jù)調(diào)度速度。探究并實(shí)現(xiàn)了基于Cesium圖形引擎的多源數(shù)據(jù)參數(shù)化集成以及三維可視化表達(dá),驗(yàn)證了武夷山國(guó)家公園時(shí)空三維可視化方法,得到以下結(jié)論。

    (1)Cesium能夠有效地將武夷山國(guó)家公園多源數(shù)據(jù)及GIS領(lǐng)域大場(chǎng)景數(shù)據(jù)參數(shù)化集成。賦予武夷山國(guó)家公園虛擬場(chǎng)景的三維地理位置,加強(qiáng)了管理者對(duì)國(guó)家公園從宏觀到微觀的把控,是適用于國(guó)家公園數(shù)字化、智慧化建設(shè)的開(kāi)發(fā)工具。

    (2)相比于傳統(tǒng)方法,本文提出的雙線程數(shù)據(jù)調(diào)度策略和二級(jí)緩存機(jī)制的組合方法,在場(chǎng)景三維可視化漫游過(guò)程中,能夠快速調(diào)度數(shù)據(jù)并且場(chǎng)景顯示流暢,占用外存空間較少,渲染繪制效率較高。

    (3)運(yùn)用WebGL和Cesium強(qiáng)大的三維可視化能力使得多源數(shù)據(jù)集成的成果可以跨終端、跨平臺(tái)的在Web瀏覽器中展示,僅需交付一個(gè)網(wǎng)址或二維碼作為設(shè)計(jì)成果,便可以利用手機(jī)、平板等移動(dòng)終端隨時(shí)對(duì)設(shè)計(jì)成果進(jìn)行審查。

    對(duì)武夷山國(guó)家公園多源數(shù)據(jù)集成的數(shù)據(jù)調(diào)度與緩存機(jī)制問(wèn)題進(jìn)行了探索與實(shí)驗(yàn),提升了數(shù)據(jù)調(diào)度與場(chǎng)景繪制效率,開(kāi)發(fā)了時(shí)空分析三維可視化系統(tǒng),為國(guó)家公園時(shí)空三維可視化提供了一個(gè)新的解決方案,具有一定的實(shí)際應(yīng)用價(jià)值。

    猜你喜歡
    瓦片武夷山視點(diǎn)
    它們的家園——武夷山
    大美武夷山
    一種基于主題時(shí)空價(jià)值的服務(wù)器端瓦片緩存算法
    慣性
    風(fēng)雨廊橋——武夷山馀慶橋
    紅土地(2018年12期)2018-04-29 09:16:50
    武夷山
    視點(diǎn)
    河南電力(2016年5期)2016-02-06 02:11:24
    讓你每天一元錢(qián),物超所值——《今日視點(diǎn)—2014精萃》序
    新聞前哨(2015年2期)2015-03-11 19:29:22
    兩會(huì)視點(diǎn)
    基于NoSQL數(shù)據(jù)庫(kù)的瓦片地圖服務(wù)
    进贤县| 喜德县| 鹤壁市| 林周县| 嘉善县| 眉山市| 麻阳| 新竹县| 满洲里市| 乳源| 萨迦县| 阿城市| 普安县| 双柏县| 深水埗区| 东光县| 财经| 深泽县| 阿尔山市| 德惠市| 饶阳县| 旬邑县| 宜宾县| 饶河县| 姚安县| 新兴县| 临武县| 胶州市| 翁牛特旗| 阜平县| 雷波县| 高阳县| 泗水县| 巴彦淖尔市| 廊坊市| 揭东县| 东兴市| 北票市| 怀集县| 五河县| 平塘县|