吳學(xué)輝
摘要:針對(duì)海量數(shù)據(jù)實(shí)現(xiàn)動(dòng)態(tài)可視化的瓶頸,提出了一種海量模型數(shù)據(jù)調(diào)度策略算法。在開發(fā)3DGIS數(shù)字城市系統(tǒng)過程中,提出了基于四叉樹場(chǎng)景管理、模型分塊、多級(jí)細(xì)節(jié)層次(LOD)的分頁數(shù)據(jù)庫的調(diào)度策略算法,實(shí)現(xiàn)了海量精細(xì)化數(shù)字城市模型數(shù)據(jù)庫組織與管理的高效性、以及海量數(shù)據(jù)場(chǎng)景調(diào)度的實(shí)時(shí)性。用提出的海量模型數(shù)據(jù)調(diào)度策略算法應(yīng)用于運(yùn)城市3DGIS數(shù)字城市系統(tǒng)進(jìn)行了檢測(cè),實(shí)驗(yàn)表明,海量模型數(shù)據(jù)調(diào)度策略達(dá)到了預(yù)期效果,系統(tǒng)瀏覽交互實(shí)時(shí)、高效,城市模型視覺逼真、精細(xì),性能提升明顯。
關(guān)鍵詞:3DGIS;數(shù)字城市;海量數(shù)據(jù);調(diào)度策略
中圖分類號(hào):TP301.6? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? 文章編號(hào):1009-3044(2018)36-0180-03
Abstract: This paper studies mass model data scheduling strategy of digital city based 3DGIS according to the issue of dynamic visualization of mass model data.In order to realize the efficient database organization and management and mass data scenes real-time scheduling,it proposes the page database scheduling strategy Based on quadtree scene management,model block, multi-stage levels of detail (LOD).Finally, it verifies that the scheduling strategy has achieved the desired results taking 3DGIS digital city system development of Yuncheng as an example.The system has realized the real-time and efficient interaction and realistic and fine city model view.
Key words: 3DGIS; digital city; mass data; scheduling strategy
1 背景
3DGIS是基于3S(遙感技術(shù)RS、地理信息系統(tǒng)GIS、全球定位系統(tǒng)GPS)技術(shù)、三維虛擬現(xiàn)實(shí)技術(shù)(3DVR)、計(jì)算機(jī)技術(shù)等關(guān)鍵技術(shù)對(duì)現(xiàn)代化城市空間信息進(jìn)行編碼、存儲(chǔ)、轉(zhuǎn)換、分析和顯示的信息系統(tǒng),真實(shí)三維空間描述、可視化和分析管理的地理信息系統(tǒng)[1]。
數(shù)字城市,即城市信息數(shù)字化,以數(shù)字化存儲(chǔ)的方式記錄城市的一切內(nèi)容信息。數(shù)字城市是現(xiàn)代化城市發(fā)展的戰(zhàn)略目標(biāo),對(duì)城市現(xiàn)代化、信息化的建設(shè)具有極其重要的戰(zhàn)略意義。數(shù)字城市有利于提高政府決策的科學(xué)性和規(guī)范性,使城市規(guī)劃具有高效性、準(zhǔn)確性和前瞻性,具有非常重要的理論價(jià)值和現(xiàn)實(shí)意義。隨著數(shù)字化城市的逐步發(fā)展,將會(huì)對(duì)城市規(guī)劃、城市建設(shè)與管理、市民生產(chǎn)與生活、社會(huì)經(jīng)濟(jì)的可持續(xù)發(fā)展帶來效益和方便。
隨著全國數(shù)字化城市建設(shè)浪潮興起,數(shù)字城市成為熱點(diǎn)研究方向之一。各大院校、科研結(jié)構(gòu)及公司紛紛對(duì)數(shù)字城市理論進(jìn)行研究,并開展一些系列的系統(tǒng)開發(fā)工作,取得了一定的研究成果,如CityMaker三維數(shù)字城市可視化平臺(tái)、Skysymbol網(wǎng)絡(luò)三維數(shù)字城市平臺(tái)等。由于三維數(shù)字城市包含大量地形、影像、城市模型及紋理數(shù)據(jù),數(shù)據(jù)量通常在幾百G以上。因此,海量數(shù)據(jù)成為數(shù)字城市實(shí)現(xiàn)動(dòng)態(tài)可視化的瓶頸[2]。對(duì)于海量級(jí)別精細(xì)化數(shù)字城市模型數(shù)據(jù)庫如何組織與管理以及場(chǎng)景數(shù)據(jù)如何調(diào)度,成為3DGIS數(shù)字城市建設(shè)的關(guān)鍵問題,也是主要的障礙。
為了實(shí)現(xiàn)對(duì)3DGIS數(shù)字城市中海量精細(xì)化數(shù)字城市模型數(shù)據(jù)庫的組織與管理的高效性以及場(chǎng)景調(diào)度的實(shí)時(shí)性,作者在天津市三維數(shù)字城市系統(tǒng)開發(fā)中設(shè)計(jì)了一種基于四叉樹場(chǎng)景管理、模型分塊、多細(xì)節(jié)層次(LOD)的分頁數(shù)據(jù)庫的調(diào)度策略,該系統(tǒng)達(dá)到了瀏覽交互的實(shí)時(shí)性和高效性,且有很好的視覺效果。
2 海量數(shù)字城市數(shù)據(jù)組織與管理
3DGIS數(shù)字城市的精細(xì)模型主要包括地形和影像、房屋模型、道路、綠地、路牌及橋梁、規(guī)劃數(shù)據(jù)等,其中,建筑模型是模型數(shù)據(jù)的主要部分。根據(jù)系統(tǒng)設(shè)計(jì)要求,方便數(shù)字城市海量數(shù)據(jù)的管理,將模型數(shù)據(jù)內(nèi)容劃分為如表1所示的數(shù)據(jù)層:
對(duì)于數(shù)字城市的海量數(shù)據(jù),始終瀏覽與交互只是局部數(shù)據(jù),因此,分層分塊才是海量數(shù)據(jù)快速管理的有力保障。下面介紹數(shù)據(jù)分層分塊的基本過程:
1) 分塊思路是以地形圖圖幅為基礎(chǔ),在此基礎(chǔ)上進(jìn)一步進(jìn)行規(guī)則格網(wǎng)劃分。
2) 每一個(gè)數(shù)據(jù)層都有一個(gè)特定的標(biāo)識(shí)名,如地形-T1、建筑-M2、路標(biāo)數(shù)據(jù)-S3、規(guī)劃數(shù)據(jù)-P4等。同時(shí),每一種數(shù)據(jù)都有一個(gè)表示該類數(shù)據(jù)的名稱,如地塊-Ground。數(shù)據(jù)按照文件夾目錄結(jié)構(gòu)組織,如圖1所示:
因此命名方式如下:
FILENAME = 數(shù)據(jù)層 + 數(shù)據(jù)類型 + 行文件夾 + 數(shù)據(jù)文件
地塊模型命名為S3\Ground\r(行號(hào))\s3-ground-r(行號(hào))-c(列號(hào)).ive,如
S3\Ground\r10\s3-ground-r10-c5.ive。
多層次細(xì)節(jié)(LOD)模型是加速海量數(shù)據(jù)場(chǎng)景顯示的有效途徑,能夠保證載入內(nèi)存的數(shù)據(jù)始終根據(jù)視點(diǎn),由近及遠(yuǎn),不同細(xì)節(jié)層次的模型數(shù)據(jù),從而減輕渲染壓力。LOD模型一般通過手動(dòng)建立不同細(xì)節(jié)層次的模型數(shù)據(jù),工作量大,且耗費(fèi)時(shí)間長,不適合海量數(shù)字城市模型數(shù)據(jù)的批制作。針對(duì)紋理數(shù)據(jù)和模型頂點(diǎn)數(shù)據(jù)分別采用二次采樣和PM箅法[4],生成一系列不同細(xì)節(jié)層次的模型。
數(shù)據(jù)經(jīng)過分層、分塊,以及建立LOD模型,海量3DGIS模型數(shù)據(jù)已經(jīng)完成制作要求,即完成了海量城市數(shù)據(jù)的組織與管理。
3 數(shù)據(jù)調(diào)度策略
面對(duì)3DGIS數(shù)字城市海量數(shù)據(jù),場(chǎng)景快速渲染具有一定的難度。由于計(jì)算內(nèi)存大小受到限制,不可能把全部模型直接加載到內(nèi)存,但實(shí)時(shí)瀏覽過程中,用戶卻希望能夠看到城市每一個(gè)地方的細(xì)節(jié)特征。為了解決這一難題,該文提出了一種基于四叉樹場(chǎng)景管理、模型分塊、多細(xì)節(jié)層次(LOD)的分頁數(shù)據(jù)庫的動(dòng)態(tài)調(diào)度策略。四叉樹的構(gòu)建采用Lindstrom 提出的基于四叉樹的實(shí)時(shí)連續(xù)LOD 動(dòng)態(tài)生成算法[5]。分頁技術(shù)是一種根據(jù)實(shí)時(shí)瀏覽需要,動(dòng)態(tài)加載與卸載場(chǎng)景數(shù)據(jù),可以大幅減少CPU 的等待時(shí)間,占用較小的內(nèi)存,不但可以提高效率,而且保證渲染效率[6][7]。傳統(tǒng)的分頁調(diào)度策略是針對(duì)海量地形數(shù)據(jù)進(jìn)行空間頁面( page) 劃分,把page 作為地形數(shù)據(jù)的基本調(diào)度單位,在場(chǎng)景漫游時(shí)動(dòng)態(tài)的加載[8]。
首先,將整個(gè)城市空間依據(jù)四叉樹的構(gòu)建原則進(jìn)行劃分,然后自頂而下、依次建立各級(jí)R+樹的空間索引??臻g索引采納與否以及空間索引性能的優(yōu)劣直接影響場(chǎng)景調(diào)度的整體性能[9]。
其次,在場(chǎng)景實(shí)時(shí)瀏覽過程中,需要根據(jù)視點(diǎn)的位置,計(jì)算當(dāng)前視點(diǎn)在場(chǎng)景中的索引位置,然后根據(jù)空間索引快速計(jì)算它與上四叉樹各塊數(shù)據(jù)中心點(diǎn)的距離,再根據(jù)指定的空間閾值判斷是否需要加載或者卸載數(shù)據(jù),最終根據(jù)視點(diǎn)的變化,不斷調(diào)整內(nèi)存中模型的細(xì)節(jié)層次級(jí)別。
4 場(chǎng)景優(yōu)化
通過以上的調(diào)度策略,基本實(shí)現(xiàn)了海量數(shù)字化城市模型的實(shí)時(shí)瀏覽與交互。要想進(jìn)一步提高渲染效率,還可以做出以下幾點(diǎn)改進(jìn):
1) 多線程加載數(shù)據(jù)。為了避免數(shù)據(jù)反復(fù)加載與卸載給場(chǎng)景性能帶來的降低,為每一個(gè)數(shù)據(jù)層設(shè)置一個(gè)單獨(dú)的線程負(fù)責(zé)本層數(shù)據(jù)的加載、卸載及不同LOD模型的加載。
2) 場(chǎng)景裁切。大范圍數(shù)字城市場(chǎng)景瀏覽過程中,許多用戶往往只關(guān)心局部地區(qū)或者熱點(diǎn)地區(qū),這時(shí)直接裁切掉裁切區(qū)以外的數(shù)據(jù),并直接返回裁切結(jié)果給場(chǎng)景,從而進(jìn)一步提升場(chǎng)景顯示的整體性能。
3) 紋理共享。紋理數(shù)據(jù)占模型存儲(chǔ)空間的絕大部分,并且也很大程度影響場(chǎng)景的顯示性能。在數(shù)字城市海量模型中,大量使用了重復(fù)的紋理數(shù)據(jù),紋理共享避免了反復(fù)加載相同紋理的數(shù)據(jù),減少了內(nèi)存使用量,并提升了渲染壓力。
在開發(fā)運(yùn)城市數(shù)字城市系統(tǒng)中,我們采用了基于3DGIS數(shù)字化城市海量模型數(shù)據(jù)調(diào)度策略,并用OSG(OpenSceneGraph)技術(shù)設(shè)計(jì)實(shí)現(xiàn)。
實(shí)驗(yàn)環(huán)境:
CPU:Intel(R) Core(TM) i7 3.6GHz
內(nèi)存:8G
顯卡:NVS 7100M
測(cè)試效果圖如圖2圖3所示:
5 結(jié)束語
一直以來,數(shù)字城市海量數(shù)據(jù)可視化、瀏覽與交互等問題沒有得到很好的解決而制約了三維數(shù)字城市的廣泛應(yīng)用。該文提出了一種基于四叉樹場(chǎng)景管理、模型分塊、多細(xì)節(jié)層次(LOD)的分頁數(shù)據(jù)庫的動(dòng)態(tài)調(diào)度策略很好地解決了這個(gè)問題,并通過實(shí)踐證明,這種策略確實(shí)高效和方便,并已成功應(yīng)用于天津數(shù)字化城市系統(tǒng)建設(shè)中。下一步將研究并實(shí)現(xiàn)三維數(shù)據(jù)網(wǎng)絡(luò)發(fā)布與調(diào)度,爭(zhēng)取而對(duì)對(duì)加快三維數(shù)字化城市的建設(shè)和發(fā)展起到良好的促進(jìn)作用。
參考文獻(xiàn):
[1] 郭向坤,林滸,劉繼申.一種CPU-GPU協(xié)同計(jì)算的三維地形實(shí)時(shí)渲染算法[J].小型微型計(jì)算機(jī)系統(tǒng), 2018(4):232-236.
[2] CHEN J, SUN M A. 3-dimensional data model for visualizing cloverleaf junction in a city model[J]. Wuhan University of Technology, 1999, 2(1):9-15.
[3] 王道臣, 萬旺根,唐經(jīng)洲.基于GPU的水面實(shí)時(shí)渲染算法[J].小型微型計(jì)算機(jī)系統(tǒng), 2008(20):127-132.
[4] Hoppe H. Progressive Meshes[M]. ACM SIC-GRAPH, 1996: 99-108.
[5] 鄭維欣,賈金原.基于PBR的輕量級(jí)WebGL實(shí)時(shí)真實(shí)感渲染算法[J].系統(tǒng)仿真學(xué)報(bào), 2017(11):3575-3577.
[6] 林繼承,萬旺根,崔濱.一種超大規(guī)模地形場(chǎng)景的實(shí)時(shí)渲染算法[J]. 計(jì)算機(jī)仿真, 2009(11):224-277.
[7] 周珂,陳雷霆,何明耘.PC平臺(tái)下海量地形的分頁調(diào)度和實(shí)時(shí)渲染[J].計(jì)算機(jī)應(yīng)用研究, 2009, 26(9):3232-3236.
[8] 曾笮,方美娥,馬利莊.改進(jìn)的MMLT全局照明渲染算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2016(9):575-577.
[通聯(lián)編輯:謝媛媛]