陳俊任,李景文,傅毓,蘇子雍
(1.桂林理工大學(xué)測(cè)繪地理信息學(xué)院,廣西桂林 541004;2.廣西空間信息與測(cè)繪重點(diǎn)實(shí)驗(yàn)室(桂林理工大學(xué)),廣西桂林 541004; 3.武警廣西總隊(duì),廣西南寧 530022)
一種基于面向?qū)ο蠛蚔RML的地理實(shí)體三維建模方法
陳俊任1,2?,李景文1,2,傅毓1,2,蘇子雍3
(1.桂林理工大學(xué)測(cè)繪地理信息學(xué)院,廣西桂林 541004;2.廣西空間信息與測(cè)繪重點(diǎn)實(shí)驗(yàn)室(桂林理工大學(xué)),廣西桂林 541004; 3.武警廣西總隊(duì),廣西南寧 530022)
在分析現(xiàn)有三維空間對(duì)象的幾何表示方法和面向?qū)ο蠓椒ǖ幕A(chǔ)上,從三維空間的角度去理解和表達(dá)現(xiàn)實(shí)世界中的地物、地理現(xiàn)象及其空間關(guān)系。提出一種基于面向?qū)ο蠛蚔RML的地理實(shí)體三維建模方法,以三維建筑物模型構(gòu)建為例的驗(yàn)證結(jié)果顯示,該方法可以快速地進(jìn)行三維重建,為不規(guī)則、非對(duì)稱性地理實(shí)體三維建模及地理實(shí)體的面向?qū)ο笕S可視化的實(shí)現(xiàn)提供了新方法和新思路。
面向?qū)ο螅籚RML;地理實(shí)體;三維建模
世界的本身是在三維空間中存在的,目前2DGIS在描述真三維實(shí)體存在局限性,如何完整地描述三維地理現(xiàn)象再現(xiàn)三維世界,其中涉及的一個(gè)核心問(wèn)題是如何進(jìn)行三維空間對(duì)象的幾何表示[1]。近年來(lái)眾多學(xué)者研究了結(jié)構(gòu)實(shí)體幾何CSG、邊界表示法BR、八叉樹(shù)、四面體格網(wǎng)以及八叉樹(shù)和不規(guī)則四面體等混合數(shù)據(jù)模型來(lái)表示三維空間實(shí)體[2,3]。然而,現(xiàn)有的三維建模很少對(duì)地理實(shí)體進(jìn)行描述和表達(dá)。地理實(shí)體是為了表達(dá)三維地理世界而抽象出來(lái)一個(gè)具有相對(duì)意義的概念[4],其抽象程度根據(jù)實(shí)際描述和表達(dá)地理事物特征屬性的需要而定,通常地理實(shí)體分為點(diǎn)狀實(shí)體、線狀實(shí)體、面狀實(shí)體和體狀實(shí)體,復(fù)雜的地理實(shí)體由這些類型的實(shí)體構(gòu)成。文中針對(duì)這些實(shí)體建模的特點(diǎn),結(jié)合軟件的實(shí)用性及可擴(kuò)展性提出了一種基于面向?qū)ο蠛蚔RML的三維建模方法,實(shí)現(xiàn)了對(duì)地理實(shí)體三維建模和可視化仿真。
2.1 面向?qū)ο?/p>
面向?qū)ο?Object-Oriented)方法不僅是一種程序設(shè)計(jì)技術(shù),而且是一種全新的設(shè)計(jì)與構(gòu)造系統(tǒng)的思想和方法[5]。它是以對(duì)象為中心的軟件開(kāi)發(fā)方法,具有高度的抽象性、完整的封裝性、繼承性和多態(tài)性,可以很好地描述現(xiàn)實(shí)世界。
現(xiàn)實(shí)地理世界中,地理空間信息是對(duì)地理實(shí)體的具體描述和表達(dá),地理實(shí)體是地理空間中獨(dú)立的、具有完整地理意義的最小邏輯單元。在地理實(shí)體三維建模中,可以利用面向?qū)ο蠹夹g(shù)將任何一個(gè)三維實(shí)體抽象為一個(gè)點(diǎn)對(duì)象、線對(duì)象、面對(duì)象、體對(duì)象以及組合對(duì)象,其抽象表達(dá)如圖1所示。這個(gè)對(duì)象封裝了構(gòu)成地理實(shí)體的幾何數(shù)據(jù)、屬性數(shù)據(jù)以及相應(yīng)的操作等,對(duì)象之間通過(guò)對(duì)象標(biāo)識(shí)建立起聯(lián)系,每個(gè)對(duì)象都具有自己的屬性和任務(wù),一旦獲取了一個(gè)對(duì)象,那么就獲得了與此對(duì)象相對(duì)應(yīng)地理實(shí)體的全部信息。將三維可視化看做是一些相互作用的對(duì)象組成的集合,集合中的對(duì)象根據(jù)收到的消息來(lái)完成相應(yīng)的任務(wù),從而實(shí)現(xiàn)系統(tǒng)的整體功能。

圖1 地理實(shí)體的抽象表達(dá)過(guò)程
2.2 VRML
VRML是一種建立真實(shí)世界模型或虛構(gòu)三維世界的場(chǎng)景建模語(yǔ)言,定義了一種把3D圖形和多媒體集成在一起的文件格式,允許描述一個(gè)現(xiàn)有的或者想象的地理事物,并把它放入虛擬的三維環(huán)境中,同時(shí)也是一個(gè)開(kāi)發(fā)標(biāo)準(zhǔn),其他技術(shù)可以引用VRML或者成為VRML的一部分[6]。VRML語(yǔ)法結(jié)構(gòu)化、層次化,利用VRML三維交互建模算法不僅可以靈活高效地創(chuàng)建三維模型,而且可以控制三維場(chǎng)景的布置、數(shù)據(jù)管理、實(shí)時(shí)編輯等,實(shí)現(xiàn)仿真數(shù)據(jù)的可視化和虛擬現(xiàn)實(shí),VRML工作方式如圖2所示。

圖2 VRML的工作方式
基于面向?qū)ο蠛蚔RML的地理實(shí)體三維模型是以面向?qū)ο蠛蚔RML建模方法為基礎(chǔ),將復(fù)雜的地理實(shí)體抽象分解成若干簡(jiǎn)單的子對(duì)象,然后根據(jù)點(diǎn)→點(diǎn)集→線→線集→面→面集的思路,再分別建立各個(gè)子對(duì)象模型,最后把這些簡(jiǎn)單對(duì)象子模型按一定的關(guān)系連接起來(lái)就可以得到整個(gè)地理實(shí)體的復(fù)雜三維模型。
3.1 基于面向?qū)ο蠛蚔RML地理實(shí)體的聯(lián)合表達(dá)
VRML把場(chǎng)景中的物體看成對(duì)象,主要包括節(jié)點(diǎn)、域值、事件、路由、原型以及腳本等要素,其中節(jié)點(diǎn)是對(duì)客觀世界中各種事物、對(duì)象、概念的抽象描述[6]。面向?qū)ο笾饕婕暗囊赜蓄悺?duì)象、消息、接口、屬性等概念,而VRML具有面向?qū)ο蟮奶卣骱蛯哟谓Y(jié)構(gòu),可以很好地與面向?qū)ο笳Z(yǔ)言相對(duì)應(yīng)[7,8]:VRML節(jié)點(diǎn)/造型對(duì)應(yīng)面向?qū)ο笳Z(yǔ)言中的對(duì)象、VRML原型對(duì)應(yīng)類、VRML域?qū)?yīng)屬性、VRML出事件與入事件對(duì)應(yīng)消息、VRML路由對(duì)應(yīng)消息的傳遞、VRML腳本對(duì)應(yīng)接口。因此,結(jié)合具體應(yīng)用,考慮模型的通用性、系統(tǒng)的可擴(kuò)展性,各類地理實(shí)體可以通過(guò)面向?qū)ο蠹夹g(shù)和VRML聯(lián)合表達(dá),其關(guān)系如圖3所示。
3.2 規(guī)則地理幾何實(shí)體基礎(chǔ)類的構(gòu)建方法
地理實(shí)體三維模型由多個(gè)子模型集合而成,每個(gè)子模型是由多個(gè)實(shí)體構(gòu)成,而每個(gè)物體則由若干基本三維幾何體有機(jī)構(gòu)成。VRML中提供多種規(guī)則幾何體結(jié)構(gòu)的造型[6],包括長(zhǎng)方體、圓柱體、圓錐體、球體等幾何體結(jié)構(gòu),這些規(guī)則幾何體是構(gòu)建復(fù)雜的三維空間實(shí)體的基礎(chǔ)和前提。為了對(duì)這些不同的幾何形體進(jìn)行統(tǒng)

圖3 地理實(shí)體的聯(lián)合表達(dá)
一的分析與保存,類的設(shè)計(jì)如下:建立基類C3DFigure,添加純虛函數(shù)Parse()和glDraw(),分別用于語(yǔ)法分析和三維顯示,然后創(chuàng)建此類的派生類CBox、CCone、CCylinder、CSphere等,再分別重載基類的Parse()和glDraw()函數(shù),實(shí)現(xiàn)自身的語(yǔ)法分析和顯示。在此,只描述地理實(shí)體長(zhǎng)方體類(CBox)建模方法,其他幾何體類建模方法可以依此類推。
在VRML中,長(zhǎng)方體的基本幾何參數(shù)長(zhǎng)(Length)、寬(Width)和高(Height)是用Box節(jié)點(diǎn)的size域的域值來(lái)描述。size域的三個(gè)域值分別表示Box在X方向的寬度、Y方向的高度、Z方向的深度。長(zhǎng)方體的原始幾何中心位于局部坐標(biāo)系的原點(diǎn),因此,在沒(méi)有發(fā)生坐標(biāo)變換之前,可以根據(jù)長(zhǎng)、寬、高基本參數(shù)計(jì)算出幾何體各個(gè)頂點(diǎn)的位置坐標(biāo)。如果坐標(biāo)發(fā)生變換,可以根據(jù)幾何學(xué)中的齊次坐標(biāo)表示法,通過(guò)變換矩陣實(shí)現(xiàn)圖形的基本變換,由此計(jì)算出變換后的頂點(diǎn)坐標(biāo),最后通過(guò)其坐標(biāo)構(gòu)造出長(zhǎng)方體的各個(gè)點(diǎn)對(duì)象。
地理實(shí)體長(zhǎng)方體類的建模算法規(guī)范如下:
#VRML V2.0 utf8
Shape{
appearance Appearance{
material Material{}
}
CBox//創(chuàng)建長(zhǎng)方體類
{
field SFVec3f size 2.0 2.0 2.0#(0,+∞)
}
3.3 復(fù)雜地理幾何體建模方法
自然界中某些復(fù)雜形體是無(wú)法通過(guò)基本造型的簡(jiǎn)單組合而滿足視覺(jué)需求,此時(shí)應(yīng)考慮如何以立體幾何中最基本的點(diǎn)、線、面方式構(gòu)造空間復(fù)雜造型。在VRML中復(fù)雜的地理幾何體通常由任意形狀、任意數(shù)量的曲線及曲面構(gòu)成,因此,對(duì)于任意復(fù)雜的自然界物體造型,均可使用VRML復(fù)雜造型技術(shù)。在構(gòu)造復(fù)雜地理幾何體之前,可以預(yù)先定義點(diǎn)集(PointSet)、索引面(IndexedFaceSet)、索引線(IndexedLineSet)以及高程格網(wǎng)(ElevationGrid)、拉伸面(Extrusion)等一些高級(jí)造型節(jié)點(diǎn)作為Shape造型節(jié)點(diǎn)geometry域值加以創(chuàng)建。
空間點(diǎn)數(shù)據(jù)是空間定位數(shù)據(jù)庫(kù)的核心,任何空間實(shí)體最終都是通過(guò)點(diǎn)坐標(biāo)來(lái)控制的,任何實(shí)體的建模最終是對(duì)空間點(diǎn)的建模。它主要包括點(diǎn)標(biāo)識(shí)號(hào)、空間三維坐標(biāo)(x,y,z)等字段。三維空間點(diǎn)建模分為兩種方式:一種是控制點(diǎn),一種是實(shí)體點(diǎn)。對(duì)于控制點(diǎn)用PointSet節(jié)點(diǎn)進(jìn)行建模,對(duì)于實(shí)體點(diǎn)通過(guò)Sphere節(jié)點(diǎn)進(jìn)行建模,因?yàn)閂RML中的PointSet節(jié)點(diǎn)沒(méi)有大小的顯示特性[5]。控制點(diǎn)建模算法描述如下:
PointSet
{
exposedField SFNode coord NULL//定義空間點(diǎn)的坐標(biāo)exposedField SFNode color NULL//定義空間點(diǎn)的顏色}
在VRML建模中線分為控制線和實(shí)體線兩類,控制線通過(guò)IndexLineSet來(lái)建模,沒(méi)有實(shí)際的粗細(xì)顯示特性,實(shí)體線通過(guò)Extrusion節(jié)點(diǎn)建模。
面是構(gòu)成體的基本元素,同時(shí)某些面可以直接構(gòu)成空間實(shí)體對(duì)象。對(duì)于任意曲面的構(gòu)造,在VRML中可以利用IndexedFaceSet節(jié)點(diǎn);如果構(gòu)造高效建造管狀對(duì)象和彎曲對(duì)象,可以利用Extrusion節(jié)點(diǎn);ElevationGrid節(jié)點(diǎn)則通常用于繪制地形圖形狀和建造地形;而利用Coordinate節(jié)點(diǎn)來(lái)創(chuàng)建出點(diǎn)、線、面造型的空間參數(shù),則可以指定PointSet、IndexedFaceSet等節(jié)點(diǎn)的三維坐標(biāo)。
3.4 VRML中幾種地理實(shí)體造型建模比較

VRML中幾種地理實(shí)體造型建模比較 表1
在模型構(gòu)建過(guò)程中,針對(duì)描述和表達(dá)地理事物特征屬性的需要采用不同的造型節(jié)點(diǎn)。對(duì)于一些規(guī)則的簡(jiǎn)單地理幾何造型,可以直接采用VRML中提供的Box等基本節(jié)點(diǎn)造型建模;對(duì)于不規(guī)則的復(fù)雜地理幾何體,不能僅僅由簡(jiǎn)單造型組合構(gòu)成,而是綜合運(yùn)用一些復(fù)雜節(jié)點(diǎn)造型如ElevationGrid節(jié)點(diǎn)、Extursion節(jié)點(diǎn)、IndxedFdacedset節(jié)點(diǎn)面造型等建模方法,高效地構(gòu)造出具有高真實(shí)感的三維模型。
對(duì)于城市中的建筑物,首先將建筑物分為規(guī)則建筑物和不規(guī)則建筑物,然后將其抽象分解為建筑物構(gòu)件對(duì)象,再利用VRML節(jié)點(diǎn)/造型與構(gòu)件對(duì)象進(jìn)行映射,實(shí)現(xiàn)三維建筑模型的構(gòu)建。
4.1 三維建筑模型構(gòu)建過(guò)程
基于面向?qū)ο蠛蚔RML的三維建筑模型是采用面向?qū)ο蟮姆椒▽⒔ㄖ锍橄蠓纸饨ㄖ飿?gòu)件對(duì)象,它主要是通過(guò)墻體對(duì)象組合構(gòu)成建筑物對(duì)象,對(duì)墻體對(duì)象又可以進(jìn)一步分解為左墻體對(duì)象、右墻體對(duì)象、外墻體對(duì)象,這些對(duì)象又可以進(jìn)一步細(xì)分為更小的對(duì)象,直到分解為點(diǎn)、線、面、體四類元對(duì)象,這些對(duì)象與VRML節(jié)點(diǎn)/造型相映射,通過(guò)VRML方式構(gòu)建建筑物的構(gòu)建對(duì)象,再逆向運(yùn)用面向?qū)ο蟮姆椒ㄟM(jìn)行構(gòu)件對(duì)象的組合及運(yùn)算,最終實(shí)現(xiàn)三維建筑物的幾何特征、屬性特征和操作方法以對(duì)象的方式進(jìn)行封裝和一體化管理,具體過(guò)程如圖4所示。

圖4 三維建筑模型構(gòu)建過(guò)程
4.2 三維建筑模型可視化實(shí)現(xiàn)
三維建筑構(gòu)件對(duì)象主要是通過(guò)VRML中的兩種方式進(jìn)行構(gòu)建:一種是直接通過(guò)VRML中的節(jié)點(diǎn)/造型進(jìn)行構(gòu)建,該方法主要構(gòu)建簡(jiǎn)單的對(duì)象;另一種方式是先通過(guò)VRML原型構(gòu)建新的節(jié)點(diǎn)類型,然后再通過(guò)第一種方式生成對(duì)象,該方法主要構(gòu)建復(fù)雜的對(duì)象特別是重用性比較高的對(duì)象。對(duì)每一類對(duì)象通過(guò)VRML建模都會(huì)產(chǎn)生一個(gè)后綴為wrl的文件,每一個(gè)文件對(duì)應(yīng)這一個(gè)對(duì)象,對(duì)這些對(duì)象可以通過(guò)Transform節(jié)點(diǎn)及相應(yīng)的域進(jìn)行模型的平移、旋轉(zhuǎn)、縮放等空間變換操作,組合成更高一層的對(duì)象,直至構(gòu)成建筑物對(duì)象。其部分主要代碼如下:
Transform{
childrenTransform{
childrenInline{
url"build\MAINLEFT.wrl" #構(gòu)建的左墻體對(duì)象
}
}
}
Transform{
childrenTransform{ childrenInline{
url"build\MAINOUT.wrl" #構(gòu)建的外墻體對(duì)象
}
}
……
構(gòu)建的建筑物三維模型如圖5所示。

圖5 建筑物三維模型圖
本示例中的建筑物基本屬于規(guī)則建筑物對(duì)象,其幾何形體大多呈現(xiàn)圓柱體、長(zhǎng)方體、三棱體等組合外形,因此可定義圓柱體、長(zhǎng)方體、三棱體等幾何形體為基本體對(duì)規(guī)則建筑體對(duì)象進(jìn)行表達(dá),實(shí)現(xiàn)較為規(guī)則的空間目標(biāo)對(duì)象的三維重建,但對(duì)于不規(guī)則建筑物對(duì)象則要借助3ds Max進(jìn)行三維構(gòu)建,最后導(dǎo)出為VRML文件。
本文提出了一種基于面向?qū)ο蠛蚔RML的地理實(shí)體三維建模方法,該方法采用面向?qū)ο笏枷雽⑷S空間地理事物抽象為點(diǎn)、線、面、體等空間對(duì)象,利用VRML提供的基本造型和高級(jí)造型節(jié)點(diǎn)進(jìn)行三維建模,使得場(chǎng)景、模型的設(shè)計(jì)和編輯更加簡(jiǎn)單、靈活。這很好地解決了針對(duì)于不同的應(yīng)用需要進(jìn)行大量重復(fù)建模工作的問(wèn)題。經(jīng)實(shí)驗(yàn)結(jié)果表明,此方法有效地提高了三維物體建模效率,但對(duì)于不規(guī)則復(fù)雜實(shí)體需借助其他建模軟件,最后導(dǎo)出為VRML文件。
[1] 萬(wàn)劍華,朱長(zhǎng)貴.3D-GIS中空間對(duì)象的幾何表示[J].礦山測(cè)量,2001(1):16~19.
[2] 徐則中,莊燕濱.三維建模系統(tǒng)的綜述[J].測(cè)繪通報(bào),2008(2):16~19.
[3] 吳德華,毛先成,劉雨.三維空間數(shù)據(jù)模型綜述[J].測(cè)繪工程,2005,14(3):70~73.
[4] 李清泉,楊必勝,史文中等.三維空間數(shù)據(jù)的實(shí)時(shí)獲取、建模與可視化[M].武漢:武漢大學(xué)出版社,2003.
[5] 山海濤,郭建星,翟輝琴等.基于面向?qū)ο蟮目臻g目標(biāo)三維交互式建模的設(shè)計(jì)[J].測(cè)繪學(xué)院學(xué)報(bào),2004,21(3): 205~207.
[6] 黃文麗,盧碧紅,楊志剛等.VRML語(yǔ)言入門與應(yīng)用[M].北京:中國(guó)鐵道出版社,2003.
[7] 王春香,朱軍,孟令奎.基于VRML的交互式虛擬教室建模[J].地理空間信息,2009,7(1):114~116.
[8] 陳啟祥,蘇艷,鄭慶花等.基于VRML的三維建模技術(shù)[J].計(jì)算機(jī)與數(shù)字工程,2007,38(5):161~163.
A Object-oriented and VRM L M ethod for Geographic Entity 3D M odeling
Chen Junren1,2,LiJingwen1,2,F(xiàn)u Yu1,2,Su Ziyong3
(1.College of Geomatics and Geoinformation,Guilin University of Technology,Guilin 541004,China;2.Guangxi Key Laboratory of Spatial Information and Geomatics,Guilin 541004,China;3.Armed Police Corps in Guangxi,Nanning 530022,China)
Based on analyzing the geometric representationmethod of the existing 3D spatial objects and object-oriented method,this paper aim to understand and express the objects,geographic phenomena and their spatial relationships in the realworld from the 3D space perspective,and presenta object-oriented-based and VRML 3Dmodelingmethod for geographical entity.By taking the 3D buildingmodeling as a example,the results suggests that themethod can complete the 3D reconstruction quickly,and provide a new method and new thinking to construct the 3Dmodel and realize the object-oriented 3D visualization for irregular and asymmetric geographic entity.
object-oriented;VRML;geographic entity;3D modeling
1672-8262(2013)04-25-04
P208.2
A
2012—12—02
陳俊任(1985—),男,碩士研究生,從事GIS理論和應(yīng)用方面的研究。
廣西自然科學(xué)基金重點(diǎn)項(xiàng)目(桂科自2011GXNSFD018003);廣西空間信息與測(cè)繪重點(diǎn)實(shí)驗(yàn)室主任基金項(xiàng)目(桂科能1103108-03)