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