翟林,楊輝
(1.天津市測繪院,天津 300381; 2.武漢大學資源與環(huán)境科學學院,湖北 武漢 430079)
基于時間序列的三維模型管理方法研究與實現
翟林1*,楊輝2
(1.天津市測繪院,天津 300381; 2.武漢大學資源與環(huán)境科學學院,湖北 武漢 430079)
城市的三維可視化數據作為信息化的基礎數據,能夠直觀地展示城市的原貌,不同時期的三維模型記錄了城市的歷史變遷。本文針對目前三維歷史數據管理較弱的現狀,闡述了基于三維模型分層、分區(qū)和分級組織方式,設計了“二級更新”和分層、分區(qū)更新機制,建立了索引機制,采用了基于時間序列的三維模型管理方法,并基于OSG進行了功能實現,很好地解決了瀏覽歷史三維場景的難題。
三維可視化;歷史數據;二級更新;索引機制;時間序列
隨著信息技術的不斷發(fā)展,三維虛擬仿真技術在城市管理和人民生活中得到廣泛的應用,現代城市已經進入數字化、信息化時代,城市的三維可視化數據作為信息化的基礎數據,能夠直觀地展示城市的原貌。不同時期的三維模型記錄了城市的歷史變遷,為城市規(guī)劃管理提供生動、直觀、全面的輔助決策支持,因此有效的管理和展示歷史三維模型數據具有重要意義。
目前,比較主流的三維軟件SkyLine、OpenSceneGraph、ArcGIS等都支持以文件方式存儲和管理三維數據,因此本文主要討論基于文件存儲方式的三維數據管理。采用文件方式進行管理[3],是指把單個三維模型或者某一區(qū)域中的多個三維模型存儲在一個模型文件中,模型文件不借助其他數據庫系統(tǒng)直接在物理存儲器上儲存。例如OpenSceneGraph平臺,三維模型的幾何數據存儲在*.ive文件中,紋理作為獨立的圖片文件進行存儲,幾何數據和紋理分開存儲。
數據組織方式直接影響三維場景的加載速度與渲染效果,高效合理的場景組織方式可以大大提高場景的渲染效率,提高渲染幀率[1]。三維模型數據組織方式從以下3個方面進行組織:模型分層組織、模型分區(qū)組織與模型分級組織。
2.1 三維模型分層組織
由于城市三維模型涉及的三維場景非常復雜,因此必須對其進行合理分層。根據數字城市三維模型的形態(tài)、分布、數據特征,可將其劃分為三維建筑模型、三維地形模型(主要包括景觀模型、橋梁模型、樹木模型、小品模型及水系模型等場景)、城市規(guī)劃設計模型、地下管線模型等,它們包含的城市實體分別如下:
(1)三維建筑模型:反映了建筑物外形詳細特征,主要包括建(構)筑物主體及其附屬物,描述了街區(qū)建筑物的空間位置、高度、外觀結構、空間形態(tài)、立面色彩。
(2)三維地形模型:反映了建模區(qū)域地形地貌特征,主要包括:①地形:地塊、道路、堤岸、綠地、綠化帶等;橋梁:②跨河域橋梁、城市立交橋、人行天橋等;③樹木:獨立樹、保護樹、行道樹等各類樹木;④水系:河流、湖泊、水塘、溝渠、水庫、噴泉等。
(3)城市設計模型:反映了城市規(guī)劃的體塊模型,主要包括體塊的位置、高度、外形等特征。
(4)地下管線模型:主要包括給水、熱力、電力、燃氣、排水等管線和管井模型。
依據以上模型分層標準,首先可實現三維場景的分層管理與控制;其次可以實現各層在三維場景中的調度范圍控制,達到較為合理的調度效果;最后可方便實現三維特效,如風效的實現。
2.2 三維模型分區(qū)組織
對于大范圍的數字城市三維模型的制作,必須確定合理的模型制作粒度,傳統(tǒng)有兩種劃分方法:單體對象模型劃分制作與區(qū)域劃分制作。
區(qū)域劃分制作可以彌補單體劃分制作在大范圍調度時,磁盤I/O操作頻率劇增,場景遍歷更新、裁剪、繪制的周期成倍增加,調度加載速度減慢,繪制幀頻迅速下降的不足,同時可以方便實現對大范圍三維模型數據的管理。但相對于單體模型劃分制作,其單個文件的數據量是較大,因此必須同時考慮對模型實行分級制作與分級調度加載。
(1)建筑模型分區(qū)原則
為了避免單個文件數據量過大,對建筑數據進行細分,分區(qū)原則:建筑體框、建筑物精細模型兩層數據按照 1∶2 000圖幅分成16等分,每一塊對應一個模型文件。分區(qū)時保持單體建筑的獨立性與唯一性。建筑的十六區(qū)排列順序如圖1所示:
12345678910111213141516
圖1 建筑的十六區(qū)排列順序
(2)其他數據分區(qū)原則
正射影像、規(guī)劃數據、地形面、樹木、獨立樹木、橋、燈、牌、小品、水面等數據按照 1∶2 000圖幅分成4等分,每一區(qū)對應一個模型文件。地形的四區(qū)排列順序如圖2所示:
1234
圖2 地形的四區(qū)排列順序
2.3 三維模型分級組織
對于大場景三維模型的繪制,必須權衡其視覺效果與模型數據量的關系。如果將大范圍精細的三維模型進行調度,由于內存大小及應用程序內存尋址空間的限制會導致調度的范圍較小。要突破內存對大場景調度的限制必須應用分頁細節(jié)層次模型技術(PagedLOD),將最精細的三維模型通過紋理壓縮與簡化減面的方法[4],制作多級別的LOD(level of detail,細節(jié)層次)模型。傳統(tǒng)的LOD模型制作有兩種方式,分述如下。
(1)模型自身含有多個細節(jié)層次,各層次隨著視點的改變切換顯示。該方式可以實現LOD效果,降低顯卡的負荷,但由于此方式是將多個細節(jié)層次模型集成在一個模型內,因此無法降低內存的消耗。
(2)將模型制作成多個不同細節(jié)的文件,通過程序來實現LOD效果。該方式是將不同的細節(jié)層次模型單獨制作成模型文件,例如把一些不重要的圖元(頂點、邊、三角形)從模型中移去,在不嚴重損失物體視覺特征的前提下對物體的網格模型進行簡化,通過程序實現動態(tài)LOD即分頁細節(jié)層次模型,不但可實現模型隨視點的變化進行細節(jié)層次的切換,更能實現模型隨視點的改變而動態(tài)加載和卸載,從而降低內存的消耗,提高場景的調度范圍。
一般情況下三維模型需分為三級LOD:第三級(LOD3)為精細模型,即只對文件內的單個物體進行拆分,不進行紋理壓縮,其可視距離不宜大于 800 m;第二級(LOD2)為中等模型,即在第三級的基礎上將紋理進行壓縮,一般為原始尺寸的1/2或1/4,可視距離根據模型種類的不同視情況設置,建筑一般不大于 2 000 m,地面和道路可適當增加;第一級(LOD1)為一般模型,即在第三級的基礎上將紋理壓縮為原始尺寸的1/8或1/16,建筑的可視距離一般不大于 3 500 m,地面和道路的可視距離宜根據整個區(qū)域的大小決定。
3.1 模型更新機制
三維數據的現勢性是衡量其使用價值的重要標準,因此要求三維數據及時更新。本文提出“進度式”數據更新方式,數據更新依據項目建設進展時間序列進行更新,如圖3所示。
三維模型實行“二級更新”機制,即“設計方案—建模;項目竣工—更新”。在項目設計方案階段,根據項目設計圖進行三維建模,錄入到數據庫中;項目建設完成后,根據實測情況進行三維模型的更新,然后錄入到數據庫中,更新流程為:①首先利用實測地形圖數據、通過外業(yè)采集建筑物的平面位置坐標及建筑高程數據,確定建筑物的平面位置及高度信息;②對二維數據進行整理,在3ds Max中建立城市三維模型數據的體塊模型數據;③利用外業(yè)采集建筑物的側面紋理,進行城市三維模型數據的紋理貼圖,實現三維數據的更新。
圖3 “二級更新”機制示意圖
3.2 增量模型更新組織方式
由于區(qū)域內項目不斷增加、基礎設施如道路、綠化等不斷建設,因此場景變化較快,想要保持三維數據的現勢性,需要提高三維數據更新頻率。傳統(tǒng)的三維模型更新方式采用全區(qū)域更新方式,其缺點為:①更新周期較長,導致三維數據的現勢性較弱;②數據量較大,占用存儲空間。
本文提出根據區(qū)域內項目的建設進展情況進行三維數據增量更新,更新方式采用分層、分區(qū)更新,增量更新的數據組織以時間序列進行存儲。
(1)分層更新
增量模型的分層方式與原始三維數據組織方式保持一致,即按照地形、建筑、道路等進行增量模型的組織。
(2)分區(qū)更新
按照本文2.2節(jié)中所劃分的區(qū)域,進行增量模型的組織,對于該區(qū)域內有項目新增或建成,則更新整個區(qū)域。
采取三維數據增量更新,分層、分區(qū)的增量組織方式的優(yōu)點:
①更新模型數量較少,不需要全區(qū)更新,更新周期快。
②后期只存儲模型增量,數據量小,節(jié)省存儲空間。
③以時間序列存儲,可直觀地查看數據更新記錄,便于展示區(qū)域歷史變遷。
3.3 三維模型文件索引
三維模型以文件的形式存儲,因此需要建立文件索引,便于數據的管理和加載。模型數據文件存放在若干不同的邏輯物理位置中,通過建文件索記錄文件信息所在的邏輯存儲位置,在系統(tǒng)加載模型時通過文件索引獲取三維模式的存儲位置,讀取模型文件進而在系統(tǒng)中顯示[5]。
增量模型按照更新時間序列進行存儲,例如2016年1月10日更新的模型,文件組織方式如圖4所示:
圖4 增量模型文件組織方式
建立文件索引需要構建現狀信息表和歷史信息表,其數據結構如表1、表2所示:
現狀信息表 表1
歷史信息表 表2
4.1 OpenSceneGraph(OSG)
OSG是一個開源的三維引擎,被廣泛應用于可視化仿真、虛擬現實、科學計算、三維重建、地理信息等領域。OSG采用標準C++和OpenGL編寫而成,可運行在所有的Windows平臺、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD操作系統(tǒng)。OSG在各個行業(yè)均有著豐富的擴展,能夠與使用OpenGL書寫的引擎無縫結合,使用國際上最先進的圖形渲染技術,讓每個用戶都能站在巨人的肩上[7]。
本文在基于OSG平臺研發(fā)的三維數字城市信息管理平臺基礎之上,加入三維模型管理模塊,實現三維數據的管理和歷史展示及對比等功能,如圖5所示。
圖5 三維數字城市信息管理平臺
4.2 模型更新流程
三維模型的更新流程如圖6所示,首先構建初始三維模型庫,根據初始模型的圖層分類、區(qū)域劃分和物理存儲位置生產初始現狀信息表;其次,制作增量模型,根據增量模型更新現狀信息表和歷史庫信息表;最后,讀取現狀信息表,加載三維模型。
圖6 模型更新流程
4.3 獲取指定時間的三維場景
通過建立三維數據索引便可進行查看指定時間的三維場景,對于任意指定的歷史時間T,需要分別在現狀和歷史空間信息庫中檢索出符合時間邏輯關系的對象數據。在現狀信息表中,按式(1)進行檢索:
Tt (1) 其中Tt為現狀空間信息表中的日期數據項的數據,而在歷史信息表中,按式(2)進行檢索: Tq (2) 其中Tq、Th分別為歷史表中變化前日期和變化后日期數據項的數據。經過上述的檢索操作,便可查找出在指定時間T有效的全部三維模型,然后根據圖層劃分加載到指定的圖層下獲取指定時間的三維場景。 隨著城市的不斷發(fā)展,城市的面貌日新月異,因此需要引入一種有效的三維場景更新機制,既能保證三維場景的現勢性,又能有效存儲和回溯歷史場景。本文闡述了三維數據分層、分區(qū)和分級的數據組織方式,設計了“二級更新”和分層、分區(qū)更新機制,有效保證了三維場景的現實性,建立了三維數據索引,便于利用三維場景查看城市的歷史變遷,基于OSG進行了功能實現和應用。 本文提出的三維模型管理方法是基于文件存儲方式基礎之上的,存在一定的局限性,因此下一步研究實現對數據庫管理方式的三維數據管理。 [1] 鄧世軍,王永杰,竇華成等. 數據分頁技術的海量三維數據模型動態(tài)調度[J]. 測繪科學,2013,38(4). [2] 朱國敏,馬照亭,孫隆祥等. 城市三維地理信息系統(tǒng)中海量數據的數據庫組織與管理[J]. 測繪科學,2008,33(1):238~240. [3] 孫卡,程小寧,秦雯. 支持海量三維空間數據存儲的文件結構[J]. 南昌航空大學學報·自然科學版[J],2012,21(3).[4] 殷宏,許繼恒,張睿等. 保持屬性特征的模型簡化算法[J]. 計算機應用研究,2009,26(10):3633~3634. [5] 梁建國,李峰. 城市三維GIS中的海量數據組織方法[J]. 測繪科學,2012,37(6). [6] 盧克,謝夜玉,黃鵠. 時空數據模型在行政區(qū)劃數據管理中的應用[J]. 地理空間信息,2008,6(6). [7] 馮琰,郭容寰,汪旻琦等. 三維城市模型數據組織與管理方法研究[J]. 測繪科學,2011,36(1). Research and Implementation of Three-dimensional Model Management Method Based on Time Series Zhai Lin1,Yang Hui2 (1.Tianjin Institute of Surveying and Mapping,Tianjin 300381,China; 2.School of Resource and Environment SciencesWuhan Univercity,Wuhan 430079,China) The three-dimensional visualization data of city as the basic data of information,can display the original appearance of the city intuitively. The three-dimensional model of different period records the historical vicissitude of the city. Based on the current situation of the weak management of three-dimensional historical data,this paper expounds organization of three-dimensional model by layer region and classification,designs two-level updating and hierarchical and zoning update mechanism,and builds an indexing mechanism based on time series. Use the method of three-dimensional model management based on time Series. Implement this method based on the OSG. This method solves the problem of browsing the history of three-dimensional scene,and has certain research significance. three-dimensional visualization;historical data;two-level updating;index mechanism;time series 1672-8262(2017)03-27-04 P208.1 A 2016—11—10 翟林(1986—),男,工程師,碩士,主要從事地理信息系統(tǒng)開發(fā)及工程應用工作。 國家自然科技基金項目(41571395)5 總 結