亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Cesium 3D Tiles技術(shù)的模型分級加載研究

        2019-08-27 03:03:04
        人民珠江 2019年8期
        關(guān)鍵詞:瓦片二進(jìn)制金字塔

        熊 英

        (廣東華南水電高新技術(shù)開發(fā)有限公司,廣東 廣州 510611)

        隨著技術(shù)的發(fā)展和用戶需求的提高,三維GIS逐漸受到越來越多學(xué)者的關(guān)注。同時,無人機的應(yīng)用開始越來越大眾化,使大范圍三維模型的生成變得更加容易,這也進(jìn)一步地促進(jìn)了三維GIS的廣泛應(yīng)用[1]。為了推進(jìn)三維GIS的快速發(fā)展,許多學(xué)者、從業(yè)者做了相關(guān)方面的研究工作。吳風(fēng)華、張亞寧[2]在基于SuperMap iServer 6R和3ds Max建設(shè)的二三維一體化系統(tǒng)中,為了解決三維數(shù)據(jù)量大、運行緩慢的問題,將3DS 模型轉(zhuǎn)換為 SuperMap 提供的一種三維模型存儲格式(SGM 格式)進(jìn)行加載,在一定程度上提高了模型的加載速度和顯示效果。陳鵬等[3]通過Skyline 與SuperMap6R分別構(gòu)建了二三維一體化系統(tǒng),并對其性能、效果等進(jìn)行對比。其中,Skyline性能顯著較優(yōu),因為其在三維場景優(yōu)化上采用了比較先進(jìn)的LOD 技術(shù),地形地貌數(shù)據(jù)采用金字塔分級技術(shù),顯示效率基本可以達(dá)到與數(shù)據(jù)量無關(guān)、模型顯示上采用了4 級LOD 分級顯示,同時通過視場靈活調(diào)度模型的顯示和剔除。曹晶等人[4]使用了一款Terra Vista軟件進(jìn)行三維建模,并采用開源庫OSG實現(xiàn)三維地圖的漫游,實現(xiàn)了大范圍城市三維系統(tǒng)的快速建模及流暢漫游。但OSG僅對地形及地表影像提供LOD支持,對模型不支持。王子啟等[5]通過Skyline構(gòu)建了具有紋理金字塔的xpl2 格式模型。它是一組在貼圖上進(jìn)行層次細(xì)節(jié)分級顯示的模型金字塔格式,顯示時可以根據(jù)視距遠(yuǎn)近控制顯示紋理精細(xì)度,從而有效地降低系統(tǒng)內(nèi)存占用率,減少系統(tǒng)啟動時間,提高可視范圍內(nèi)模型的讀取速度。李俊金[6]對 Cesium與無人機傾斜攝影技術(shù)結(jié)合應(yīng)用在三維城市建模進(jìn)行了初步探討。朱栩逸、苗放[7]討論了Cesium框架與Cesium下地形數(shù)據(jù)處理方法,提出了利用Cesium搭建開源三維GIS方案,并實現(xiàn)了Web GIS系統(tǒng)中的部分基本功能,并未對三維模型部分進(jìn)行研究。任宏康等[8]利用HTML5 與WebGL 第三方類庫Three.js 技術(shù),基于瓦片信息對真實三維地形進(jìn)行了設(shè)計與實現(xiàn),并采用Three.js提供的接口功能創(chuàng)建組織了4 層LOD 模型。Three.js作為一套經(jīng)常與Cesium.js相提并論的開源三維客戶端技術(shù),也不失為一套行之有效并具備開放、免插件、跨平臺等優(yōu)點的3DWebGIS 方案。

        綜合以上研究成果可見,三維GIS方面軟件工具眾多,有功能齊備、操作簡便的商業(yè)化軟件,如Skyline、SuperMap等,也有接口豐富、擴展性強的開源庫,如Cesium.js、Three.js、OSG等。在三維地形建模方面研究成果較多,技術(shù)也較為成熟,大部分均能提供三維地形的LOD能力。但在三維模型的LOD研究方面成果明顯較少,尤其是在開源庫、WebGL等基礎(chǔ)上的三維模型分級加載研究。本文通過在該方面的探索性研究和應(yīng)用為廣大學(xué)者、從業(yè)者在技術(shù)選型與比較等方面提供了借鑒和參考。

        1 方法

        1.1 系統(tǒng)關(guān)鍵技術(shù)

        a) OpenGL等相關(guān)技術(shù)。OpenGL為用于渲染2D、3D矢量圖形的跨語言、跨平臺的應(yīng)用程序編程接口(API)[9]。OpenGL ES(OpenGL for Embedded Systems)則為OpenGL的子集,針對手機、PDA和游戲主機等嵌入式設(shè)備而設(shè)計[10]。WebGL是一項利用JavaScript API渲染交互式3D電腦圖形和2D圖形的技術(shù),可兼容任何的網(wǎng)頁瀏覽器,無需加裝插件。通過WebGL的技術(shù),只需要編寫網(wǎng)頁代碼即可實現(xiàn)3D圖像的展示。WebGL的規(guī)格尚在發(fā)展中,由非營利的Khronos Group管理。

        b) Cesium技術(shù)[11]。Cesium是一個基于JavaScript編寫的使用WebGL的地圖引擎,一款開源3D GIS的javascript庫。Cesium支持3D、2D、2.5D形式的地圖展示,可以自行繪制圖形,高亮區(qū)域,并提供良好的觸摸支持,且支持絕大多數(shù)的瀏覽器和mobile。但是由于Cesium基于WebGL來渲染3D的,所以瀏覽器必須支持WebGL才可以運行。

        c) 3D Tiles技術(shù)[12]。Cesium團(tuán)隊2016年推出的數(shù)據(jù)規(guī)范,在glTF基礎(chǔ)上提供了LOD能力,定位是Web環(huán)境下海量三維模型數(shù)據(jù)的加載。該規(guī)范于2016年9月30日已開始了OGC標(biāo)準(zhǔn)化進(jìn)程,在將來的三維模型數(shù)據(jù)加載中將占領(lǐng)重要的地位。

        1.2 研究框架

        本文研究的整體技術(shù)路線見圖1。通過三維建模軟件構(gòu)建得到的模型一般為.dae格式,為了在網(wǎng)絡(luò)上進(jìn)行傳輸進(jìn)而支撐信息化應(yīng)用,需要通過轉(zhuǎn)換工具[13]轉(zhuǎn)換為glTF格式。glTF(GL Transmission Format)是專為3D模型的網(wǎng)絡(luò)傳輸而設(shè)計的格式。它的核心是一個JSON文件,通過該文件描述了三維模型的結(jié)構(gòu)、組成等。JSON文件中的一級節(jié)點包括scenes、nodes、cameras、animations、meshes、textures、images、samplers、buffers、bufferViewers、accessors、materials、techniques、programs、shaders、skins。其中,scenes、nodes、cameras、animations描述了模型整個場景的結(jié)構(gòu);meshes、textures、images、samplers則主要用來描述場景中的三維物體,如節(jié)點、紋理等;buffers、bufferViewers、accessors則是核心數(shù)據(jù),buffers中存儲了所有的二進(jìn)制數(shù)據(jù),bufferViewers、accessors均建立在buffers基礎(chǔ)上;materials、techniques、programs、shaders則屬于OpenGL中的概念,通過它們完成對三維模型的渲染。

        圖1 技術(shù)路線

        一般標(biāo)準(zhǔn)的glTF是文本格式,在對二進(jìn)制數(shù)據(jù)的處理上一般有2種做法:一是把二進(jìn)制文件(包括紋理圖片、buffer數(shù)據(jù)等)獨立出來,這樣會很大幅度地降低glTF文件大小,但在網(wǎng)絡(luò)傳輸過程中,則需要額外地加載二進(jìn)制文件,增加網(wǎng)絡(luò)資源消耗,降低加載速度,該方法處理得到的.gltf格式模型文件見表1;二是把二進(jìn)制部分按照base64編碼后以data URI的形式嵌入在glTF文件中,該方會極大幅度地增加文件大小,且需要額外的客戶端解碼。

        表1 .gltf格式模型文件

        為了克服這些不足,.glb格式應(yīng)運而生[14]。它將JSON文件與二進(jìn)制數(shù)據(jù)進(jìn)行融合,具體由文件頭、場景描述JSON和二進(jìn)制數(shù)據(jù)所組成,見圖2。

        圖2 .glb格式模型規(guī)范

        該.glb文件基本包括了所有buffer數(shù)據(jù)和紋理圖片,且文件較小,結(jié)構(gòu)簡單清晰,使用起來更為方便。它是后面3D Tiles格式的重要基礎(chǔ)。

        以上僅是整個模型的加載,并不具備LOD的能力。3D Tiles賦予了glTF分級加載的能力。它將二維地圖中金字塔的概念引入三維領(lǐng)域,特別適用于海量三維模型的加載。圖3中是官方給出的New York City三維模型實例??梢姡壤咻^小的時候,僅是一些地標(biāo)性的建筑得到加載,隨著地圖的放大,越來越多的模型得到展示。

        截至目前,3D Tiles提供的僅是一套規(guī)范,但Cesium.js已具備了3D Tiles的支撐能力。按照這套規(guī)范對模型進(jìn)行預(yù)處理,處理成的模型金字塔則可直接在Cesium中以Cesium 3D Tileset的類型來完成加載[15]。

        a)小比例尺 b)中比例尺 c)大比例尺圖3 New York City模型分級加載效果

        根據(jù)使用場景的不同,3D Tiles提出了Batched 3D Model(.b3dm)、Instanced 3D Model(.i3dm)、Point Cloud、Composite等不同類型的格式,其中,前兩者使用較多。Batched多使用于建筑,Instanced則適用于有多個重復(fù)對象的情況,如樹木等。與.glb類似,.b3dm和.i3dm也是由固定格式的文件頭、json和二進(jìn)制文件組成,見圖4—5。

        圖4 .b3dm模型文件規(guī)范

        按照這些瓦片格式規(guī)范整理出的模型金字塔,便可在Cesium中進(jìn)行載入,從而實現(xiàn)了三維模型的分級加載。瓦片格式規(guī)范見表2。

        表2 瓦片格式規(guī)范

        2 實驗分析

        根據(jù)上文的技術(shù)路線展開實驗,以無人機拍攝的覆蓋大約7 km2的廣州開發(fā)區(qū)玉樹工業(yè)園為例,進(jìn)行三維自動化建模,并對建模結(jié)果進(jìn)行處理和轉(zhuǎn)換,最終按照3D Tiles數(shù)據(jù)規(guī)范生成模型瓦片金字塔,并在WebGIS系統(tǒng)中進(jìn)行加載和展示,結(jié)果如下。

        a) 三維模型的建模與切片。該步驟主要通過三維建模軟件Photo Scan完成自動化建模,并生成不同級別的瓦片數(shù)據(jù)。

        b) 模型瓦片的格式轉(zhuǎn)換。采用不同工具,按照.dae->.gltf->.glb->.b3dm的流程對模型瓦片分別進(jìn)行轉(zhuǎn)換。

        c) 模型瓦片結(jié)構(gòu)關(guān)系的建立。通過tileset.json文件,以內(nèi)嵌的形式記錄各級模型瓦片之間的結(jié)構(gòu)關(guān)系。目前tileset.json文件的生成需要計算多個bounding Volume、 transform,可編寫腳本工具實現(xiàn)json文件中子節(jié)點的自動添加和計算。

        d) 模型金字塔的加載。按照該流程,對無人機航拍建模結(jié)果進(jìn)行處理,得到金字塔,見表3。在Cesium中通過簡單的語句進(jìn)行加載,效果見圖6。

        e) 實驗結(jié)果。以筆者所使用的計算機進(jìn)行測試(處理器為AMD A6-3600 APU with Radeon HD Graphics 2.10 GHz,8 Gb內(nèi)存,WIN10 64位操作系統(tǒng),瀏覽器為Google Chrome 59.0.3071.115版本),如果在瀏覽器中直接加載原始模型(.glb格式大小約為115 M),則內(nèi)存占用接近3 Gb,模型加載時間約6.08 s(不含紋理渲染的耗費時間),加載后整個地圖的拖動舉步維艱,嚴(yán)重地制約了三維WebGIS的推廣和應(yīng)用。將該模型處理成瓦片后再進(jìn)行加載,第1級含1個瓦片,第2級為4個,第3級為14個,每個瓦片大小最大不超過300 kb,加載時間均在5 ms以內(nèi)。后面的級別雖然會呈指數(shù)級增長,但根據(jù)視錐體和水平裁剪等算法,僅位于當(dāng)前視線范圍內(nèi)的瓦片才會進(jìn)行加載,因此即使在大比例尺下也不會帶來性能瓶頸。整個模型加載以后地圖拖動靈活自如,極大地提升了用戶體驗。該實驗結(jié)果有力證明了3D Tiles在提升WebGIS中三維模型加載效率的有效性。

        表3 模型金字塔

        a)第1級 b)第2級 c)第3級圖6 分級加載效果

        3 結(jié)論

        隨著近年來水利信息化的大力發(fā)展,各項水利業(yè)務(wù)對三維場景的構(gòu)建提出了越來越多的應(yīng)用需求,但無論是自動化的實景三維建模還是手工的精細(xì)化三維建模,得到的模型往往數(shù)據(jù)量較大。為了推廣三維場景的使用,三維模型的高效加載是一個亟需解決的瓶頸。在此背景下,本文提出了一套基于Cesium.js和3D Tiles技術(shù)的三維模型分級加載機制。基于該機制,以無人機拍攝建模結(jié)果為實例,預(yù)先構(gòu)建了三維模型金字塔,并在瀏覽器中對金字塔模型進(jìn)行分級分塊地加載,優(yōu)化了三維模型的展示效果和加載效率,克服了三維WebGIS的性能瓶頸。該實驗結(jié)果有力證明了3D Tiles在提升WebGIS中三維模型加載效率的有效性,從而可為水利場景的構(gòu)建和信息化推廣提供一定的借鑒。

        猜你喜歡
        瓦片二進(jìn)制金字塔
        “金字塔”
        A Study of the Pit-Aided Construction of Egyptian Pyramids
        用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
        一種基于主題時空價值的服務(wù)器端瓦片緩存算法
        有趣的進(jìn)度
        二進(jìn)制在競賽題中的應(yīng)用
        海上有座“金字塔”
        慣性
        揚子江(2019年1期)2019-03-08 02:52:34
        神秘金字塔
        童話世界(2017年11期)2017-05-17 05:28:25
        基于NoSQL數(shù)據(jù)庫的瓦片地圖服務(wù)
        国产av一区二区三区在线| 亚洲精品一区二区三区四区久久| 看国产亚洲美女黄色一级片| 欧美xxxxx高潮喷水麻豆| 亚洲中文字幕国产综合| 国产一极毛片| 亚洲国产精品午夜一区| 丝袜美腿在线观看视频| 免费在线黄色电影| 丰满人妻在公车被猛烈进入电影| 四虎精品国产一区二区三区| 亚洲精品在线观看自拍| 成年女人免费v片| 国产精品女人呻吟在线观看| 最近最新中文字幕| 亚洲午夜无码久久yy6080 | 一区二区精品国产亚洲| 中文字幕乱码熟女人妻水蜜桃| 91老司机精品视频| 国内偷拍视频一区二区| 亚洲一区在线观看中文字幕| 性色av一区二区三区| 手机看片国产日韩| 少妇人妻一区二区三飞| 久久无码人妻丰满熟妇区毛片| 久久人妻少妇嫩草av蜜桃 | 无套内谢孕妇毛片免费看看| 亚洲女同系列高清在线观看| 国产一区二区三区在线视频观看 | 久久精品无码av| 天天躁日日躁狠狠躁av中文| 美女黄频视频免费国产大全 | 成 人 免 费 黄 色| 亚洲最大中文字幕无码网站 | 国产日韩久久久久69影院| 中文字幕综合一区二区| 亚洲av无码乱码在线观看裸奔| 伊人久久大香线蕉免费视频| 国产成人av综合色| 在线观看国产成人自拍视频| 午夜福利啪啪片|