吳學輝



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