摘 要:概述了城市三維景觀可視化的過程及關(guān)鍵技術(shù),給出了一個基于兩種流行3DAPI的系統(tǒng)框架,討論了基于網(wǎng)絡(luò)的城市三維景觀發(fā)布技術(shù),并提供了一個城市三維景觀實例系統(tǒng)M3DView。
關(guān)鍵詞:三維可視化;數(shù)碼城市;
1 引言
城市三維景觀系統(tǒng)也稱作城市三維地理信息系統(tǒng)(ThreeDimensionaiUrbanGeographicInformationSystem,3DUGIS)是指能對城市區(qū)域內(nèi)空間對象進行真三維描述和分析的GIS系統(tǒng),是一個可視現(xiàn)實和虛擬現(xiàn)實集成的系統(tǒng)。它可廣泛應(yīng)用于城市規(guī)劃、住宅小區(qū)綜合管理、市政管理、公共交通、環(huán)境保護、資源調(diào)查、區(qū)域開發(fā)規(guī)劃、旅游等多種領(lǐng)域。
近年來,隨著數(shù)字城市的提出、研究、發(fā)展,作為數(shù)字城市基礎(chǔ)的數(shù)字城市景觀模型,簡稱數(shù)碼城市(CyberCity),它在城市規(guī)劃、設(shè)施管理、電信與旅游應(yīng)用等方面的優(yōu)勢為人們所關(guān)注。另一方面,隨著真實感計算機圖形顯示技術(shù)的發(fā)展和硬件的快速發(fā)展,為人們描述現(xiàn)實中的三維世界提供了很大的方便和可能性。這些使得城市三維景觀系統(tǒng)的理論、應(yīng)用研究成為了目前國際上GIS及其相關(guān)學(xué)科研究的熱點,有關(guān)這方面的實踐也已經(jīng)展開。近年來,武漢中地信息工程有限公司基于原有的二維GIS和地形模擬研究成果和產(chǎn)品,由筆者參與研制和開發(fā)了公司的城市三維景觀系統(tǒng)。
2 城市三維景觀可視化過程概述
一個完整的三維可視化過程如圖1所示,包括模型化過程、映射過程、交互過程三個過程。其中模型化過程是將現(xiàn)實世界各種各樣的三維可視化對象映射成計算機可接收的數(shù)據(jù)格式,從而產(chǎn)生可視化數(shù)據(jù)對象;映射過程的含義是將模型化后所得到的數(shù)據(jù)映射成一種易于理解的表示形式,包括可視化方案的設(shè)計,即需要決定在最后的圖像中應(yīng)該看到什么,又如何將其表現(xiàn)出來;交互過程就是通過靈活、高效的交互界面使用戶高效地與可視化對象打交道,從不同觀察角度和詳細程度觀察可視化對象。城市三維景觀系統(tǒng)本質(zhì)上是一個三維可視化系統(tǒng),其系統(tǒng)構(gòu)造也是基于上述幾個過程。
2.1 城市三維景觀數(shù)據(jù)建模
構(gòu)建3D城市模型所需要的數(shù)據(jù)包括:建筑物的高度數(shù)據(jù),建筑物的幾何要素數(shù)據(jù)(表示建筑物的三維幾何外形特征的數(shù)據(jù)),建筑物及地面的影像紋理數(shù)據(jù),DEM數(shù)據(jù),其他數(shù)據(jù)(如植被、樹木等有關(guān)數(shù)據(jù))、語義特征及拓撲數(shù)據(jù)等,重點是城市空間對象的幾何、紋理數(shù)據(jù)和DEM數(shù)據(jù)。
目前對于地形模型的構(gòu)造有多種方法,如規(guī)則格網(wǎng)法(GRID)、不規(guī)則三角網(wǎng)(TIN)和混合法(GRID-TIN)等多種方法。這些方法都在實際的地形模擬中得到了廣泛應(yīng)用,相對于建筑物構(gòu)模已經(jīng)非常成熟。對于建筑物模型。人們不僅關(guān)心其外形的描述并且要求知道其幾何結(jié)構(gòu)和每一層的屬性特征,以便能夠?qū)ζ溥M行空間分析和不同層的屬性查詢。
針對三維空間數(shù)據(jù)模型的研究早已成為3DUGIS研究領(lǐng)域首要解決的問題而展開,國際國內(nèi)對三維空間數(shù)據(jù)模型的研究,大致可歸納為四類:①三維矢量模型,即基于矢量(Vector)或邊界面表示的模型。它是用一些基元及其組合來表示三維空間對象,如格網(wǎng)(Grid)、不規(guī)則三角網(wǎng)(TIN)、邊界表示(BR)、參數(shù)函數(shù)、四面體格網(wǎng)(TEN)等。這類數(shù)據(jù)模型偏重于3D空間表面表示,如地形表面、地質(zhì)層面等,通過表面表示形成3D空間對象,其優(yōu)點是便于顯示和數(shù)據(jù)更新。不足之處是空間分析難以進行。②三維柵格模型,亦稱為體模型,它是基于體元(VOXei-VOiumeEiement)表示的數(shù)據(jù)模型,如3D柵格(Array)、八叉樹(Octree)、結(jié)構(gòu)性實體幾何(CSG)。這類模型側(cè)重于3D空間體的表示,如礦體、水體、建筑物等,通過對體的描述實現(xiàn)3D空間對象表示。其優(yōu)點是易于表達三維空間屬性的非均衡變化,便于空間操作和分析,但占用存儲空間較大,計算速度也較慢。③混合或集成數(shù)據(jù)模型?;旌蠑?shù)據(jù)模型是將兩種或兩種以上不同的數(shù)據(jù)模型結(jié)合起來,取長補短,以滿足需要,如采用TIN和八叉樹的集成數(shù)據(jù)模型,可以應(yīng)用TIN進行三維表面的可視化和分析,應(yīng)用八叉樹執(zhí)行空間定位等3D操作和分析。④面向?qū)ο髷?shù)據(jù)模型。這種模型比上述模型優(yōu)越,更符合人們認識事物的思維模式,還具有存儲復(fù)雜對象、支持完整性、有較高查詢訪問能力等優(yōu)點,是解決空間數(shù)據(jù)與屬性數(shù)據(jù)結(jié)合、圖形與圖像數(shù)據(jù)結(jié)合、多媒體信息管理的一種較好的數(shù)據(jù)模型。但目前對該數(shù)據(jù)模型的研究尚不夠充分,還有不少理論和技術(shù)方法問題需要解決。
如何批量地獲取城市空間對象的三維幾何信息、相片紋理、語義屬性等數(shù)據(jù)進行城市景觀的快速、批量建模,仍是制約3DUGIS進一步發(fā)展的最大障礙。目前對城市三維景觀中復(fù)雜模型的建模仍需借助三維建模軟件如AutOCAD,3DStudiOMAX等進行手工建?;蛲ㄟ^遙感影像數(shù)據(jù)進行有限程度的半自動建模。
2.2 城市三維景觀模型可視化
目前可基于微機應(yīng)用的三維圖形庫有OpenGL,Direct3D,Giide,VRML,Java3D等。對一般的PC機用戶而言,比較合適的底層3DAPI是OpenGL和Direct3D,這兩種接口都提供高性能的3D圖形處理能力,其特性受到許多硬件的支持,其本身已經(jīng)成為PC主流操作系統(tǒng)WindOws中的一部分。官方公布的OpenGL的最新版本是OpenGL1.2,Direct3D的最新版本是Direct3D8.1。無論采用何種三維空間數(shù)據(jù)模型和建模方法,若要使用現(xiàn)有的3DAPI(三維應(yīng)用程序接口)進行系統(tǒng)的開發(fā),則必須將模型數(shù)據(jù)轉(zhuǎn)換成3DAPI能直接接受的基本圖元形式。在OpenGL和Direct3D中基本的圖元形式是面、線、點。實際上各種三維體的繪制是通過對三維體表面或內(nèi)部的面、線、點的繪制而實現(xiàn)的。
對城市三維景觀模型進行可視化應(yīng)具有以下功能:能夠疊加影像數(shù)據(jù)對3D模型進行紋理貼合,能夠多角度觀察、全方位實時漫游、任意選定路線飛行、制作動畫等。
2.3 城市三維景觀模型空間分析
在二維GIS中,空間分析是GIS區(qū)別于三維CAD與科學(xué)計算可視化的特有功能,在3DUGIS中同樣如此??臻g分析三維化,也就是直接在三維空間中進行空間操作與分析,連同空間對象進行三維表達與管理。用戶可以通過鼠標點取直接測量場景中的距離、面積、體積、平均高度、平均坡度、平均坡向、通視關(guān)系等,并可將挖方效果和填方效果在三維場景中直觀顯示。這種空間分析主要包括兩大類:
(1)空間測算功能為①距離、面積、體積測量;②地形測量,用戶可以測量指定區(qū)域中的平度高度、平均坡度和平均坡向;③通視計算,用戶可以得到場景中指定兩點之間的通視關(guān)系(即可視與否);④挖方效果和填方效果的三維顯示。
?。?)空間分析功能為①空間網(wǎng)絡(luò)分析;②空間拓撲分析;③地形分析———通過地形分析,用戶可以對場景中的地形進行另外一種方式的觀察;④通視分析———通過通視分析,用戶可以選擇觀察點并計算整個場景中的可視區(qū)域;⑤水淹分析———使用水淹分析工具,用戶可以對地形進行洪水淹沒分析及流域計算;⑤開挖與回填分析,土方量的計算。
3 城市三維景觀系統(tǒng)總體結(jié)構(gòu)
3.1 底層三維應(yīng)用程序接口(3DApl)
就特點和性能以及適用性而言O(shè)penGL和Direct3D兩種3DAPI各有優(yōu)劣,如OpenGL具有很好的跨平臺性、與硬件無關(guān)性,而Direct3D提供的立即模式編程卻允許應(yīng)用程序充分利用3D硬件的特性開發(fā)出更高性能的3D應(yīng)用程序,這種編程模式被許多高性能3D應(yīng)用程序編制者采用。考慮到目前兩種3DAPI使用的實際情況,開發(fā)可同時支持兩種接口的三維應(yīng)用程序是有必要的。但要開發(fā)出性能較好且同時支持這兩種3DAPI的應(yīng)用程序必須設(shè)計出一個性能較好的應(yīng)用程序系統(tǒng)結(jié)構(gòu),同時還應(yīng)考慮系統(tǒng)的可擴展性。面向?qū)ο蟮木幊碳夹g(shù)可以幫助我們很好地實現(xiàn)這一目的。
3.2 系統(tǒng)流程
筆者所建立的城市三維景觀系統(tǒng)的工作流程框圖如圖2所示。
城市三維景觀中地形、建筑物等實體對象各種紋理的主要來源是航空影像,但是由于航空影像是從空中向下的中心投影,因此屋頂紋理一般可在航空影像上提?。ǔ潜黄渌邔咏ㄖ锼趽酰?,而墻面有的是在空中可見的,可在航空影像上提取紋理,有的則被遮擋,可補充地面近景攝影影像。景觀地形可通過導(dǎo)入DEM數(shù)據(jù)、GRD數(shù)據(jù)、高程庫數(shù)據(jù)或者在自定義的范圍內(nèi)建立虛擬場景的基本地形并配以相應(yīng)的影像圖來創(chuàng)建。城市三維景觀中諸如建筑物之類的空間實體模型可通過多種方式創(chuàng)建,如可通過把2DGIS中的矢量區(qū)數(shù)據(jù)按照設(shè)置好的高度進行批量建筑物建模,并可映射上預(yù)設(shè)的紋理,也可通過導(dǎo)入第三方三維模型如*.3ds,*.dXf來建立模型,還可通過從航空影像提取部分建筑物幾何要素來輔助進行建模。此外,系統(tǒng)還應(yīng)該考慮諸如樹木、花壇、路燈等特殊實體,此類實體一般采用電子公告牌的方式進行顯示,對于樹這類特殊實體也有采用分形方法進行顯示的。
3.3 系統(tǒng)結(jié)構(gòu)
一個基于OpenGL和Direct3D兩種3DAPI的三維景觀系統(tǒng)結(jié)構(gòu)框架,如圖3所示。該結(jié)構(gòu)框架中應(yīng)用程序分為兩部分,一部分是封裝在動態(tài)鏈接庫中的三維視圖類,主要功能為三維環(huán)境的創(chuàng)建及三維場景的渲染;另一部分則為主應(yīng)用程序,負責(zé)數(shù)據(jù)處理、界面顯示及交互控制,其視圖繼承自三維視圖類。但就整個系統(tǒng)而言還包括OpenGL和Direct3D的三維圖形庫。
圖3中DLL表示動態(tài)鏈接庫。由于這里所給出的只是一個系統(tǒng)設(shè)計思想,故未列出系統(tǒng)中包含的所有類和處理過程。C3DObject是一個實現(xiàn)三維場景繪制的公共基類,其中定義了初始化3D環(huán)境、加載場景數(shù)據(jù)、渲染場景、操縱場景等所用到的公共接口(或成員變量),這些公共接口大多數(shù)都定義為虛函數(shù),以便派生類可以重載,更重要的是這樣可以使用基類指針來訪問派生類的方法,以達到用同一個基類指針訪問不同實現(xiàn)方法的派生類的目的。這個基類里所定義的是3D場景繪制所共有的特征,而真正的功能大多數(shù)是由其派生類來實現(xiàn)的。有關(guān)接口分配應(yīng)掌握的一個原則是能在基類里實現(xiàn)的公共操作或變量則在基類里實現(xiàn),只有將那些由于3DAPI差異而必須分別實現(xiàn)的功能才交由派生類實現(xiàn)。類CD3Dbase,CD3DDraw是基于Direct3D實現(xiàn)3D場景繪制的類,而COGL-base,COGLDraw則是基于OpenGL實現(xiàn)3D場景繪制的類,它們都是C3DObject的派生類,其中類CD3Dbase,COGLbase直接從C3DObject派生,主要用來實現(xiàn)3D環(huán)境的初始化,而對場景的渲染則主要是由派生類CD3DDraw,COGLDraw來實現(xiàn)。
類C3DView繼承自開發(fā)環(huán)境中系統(tǒng)的視圖類如VC++中的CView類,其中定義了一個C3DObject類的指針及其他與3D環(huán)境交互的接口,當(dāng)用戶選擇使用不同的3DAPI時,該指針便指向不同的3D繪制類對象,于是使用該指針可完成所有與3D環(huán)境的交互功能。主應(yīng)用程序中所有對3D環(huán)境的訪問均通過C3DView間接進行。
該系統(tǒng)結(jié)構(gòu)具有良好的可擴展性,用戶可在此結(jié)構(gòu)基礎(chǔ)上進一步擴展支持其他三維圖形庫。
4 基于網(wǎng)絡(luò)的城市三維景觀發(fā)布
近年來,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,提出了基于網(wǎng)絡(luò)的GIS的要求,即WebGIS。但是,目前的WebGIS都只有二維地圖的數(shù)據(jù)管理、查詢和顯示能力,缺乏必要的三維信息處理能力。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,如何利用網(wǎng)絡(luò)這個巨大的信息傳輸工具,使之能更好地處理城市三維空間地理信息,已成為3DUGIS研究者所面臨的新挑戰(zhàn)。構(gòu)建基于網(wǎng)絡(luò)的城市三維景觀系統(tǒng)必須考慮WWW環(huán)境下的系統(tǒng)通信與運行結(jié)構(gòu),三維真實感圖形實時計算與顯示的數(shù)據(jù)模型,適合地理空間數(shù)據(jù)顯示、分析的用戶界面,以及基于Internet系統(tǒng)開發(fā)工具如VRML與Java的集成應(yīng)用、共享對象的管理等。
4.1 基于網(wǎng)絡(luò)的3DApl
VRML,Java3D是兩種在Internet上具有交互性的3DAPI,但它們的應(yīng)用都要基于底層3DAPI,如OpenGL和Di-rect3D的支持。
VRML是一種面向Web的三維造型語言,為三維數(shù)據(jù)轉(zhuǎn)換定義了一個標準的文件格式。VRML將3D模型轉(zhuǎn)換為簡潔的數(shù)學(xué)表達式,因而只需在網(wǎng)上發(fā)送轉(zhuǎn)換后的少量數(shù)據(jù)。而且,一旦發(fā)送出去就不再需要對模型進行下一步發(fā)送。在這一過程中,全部的變化僅僅是在模型中觀察者視點的變化。這樣,在網(wǎng)上僅需不斷傳輸觀察者的方位,極大地節(jié)省了數(shù)據(jù)帶寬。VRML與設(shè)備無關(guān),它是作為一種描述虛擬境界的語言獨立存在。與HTML一樣,VRML也是可由瀏覽器解釋的描述語言,只不過VRML不是描述成一個Page的格式,而是描述成3D環(huán)境和目標的布局。VRML是WWW上描述三維虛擬環(huán)境的標準方法,在Web3DUGIS中得到了廣泛應(yīng)用。
Java3D是SUN公司在OpenGL及VRML基礎(chǔ)上開發(fā)出來的一個3DAPI,包括了實現(xiàn)交互三維真實感圖形的基本類、接口,由Java3D包和Java3D應(yīng)用包構(gòu)成。前者由生成圖形和交互的核心類組成,后者主要是提供用戶高層應(yīng)用接口,如3D文件格式讀取、基本形體(如球、圓錐等)的生成等。
4.2 基于網(wǎng)絡(luò)的城市三維景觀系統(tǒng)體系結(jié)構(gòu)
基于網(wǎng)絡(luò)的城市三維景觀發(fā)布需要解決的核心問題是海量三維景觀數(shù)據(jù)與網(wǎng)絡(luò)傳輸速度有限的矛盾,即實時漫游的數(shù)據(jù)調(diào)度問題。在Web3DUGIS領(lǐng)域開展的一些研究工作典型的有:EdmundSIDES(2000),Lindenbeck(1998)對3DUGIS系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)模式進行了研究,SiykaZlatanova(1999)提出了一個Web3DUGIS的體系結(jié)構(gòu);Kyong-HoKim等人(2000)建立了一個基于Web的3DGIS,其體系結(jié)構(gòu)如圖4所示,圖中EAI為ExternalAuthoringInterface。還有一些學(xué)者對VRML語言在C/S結(jié)構(gòu)下的實現(xiàn)進行了研究(Coors和Jung,1998;Dodge等人,1998)。目前已經(jīng)有許多可視化城市三維景觀的應(yīng)用實例,如虛擬Paris,Glasgow,NewOrleans,Sydney,Toronto等。
JiriZara等人(2001)提出了一種分塊調(diào)度虛擬城市數(shù)據(jù)實現(xiàn)網(wǎng)上實時瀏覽大規(guī)模城市三維景觀的方法,并可視化了整個Prague市的一部分城區(qū)作為實驗。他們提出的系統(tǒng)結(jié)構(gòu)如圖5所示。在他們提出的方法中,首先將整個城市按街道、廣場以及其他開放式空間相一致的拓撲關(guān)系進行分塊,并在漫游時根據(jù)當(dāng)前視點位置實時計算塊的可見性,同時采用一種有效的塊調(diào)度算法往內(nèi)存中調(diào)度塊和淘汰塊。另外,他們還采用了LOD技術(shù)來提高漫游時的顯示速度。圖5中HouseEditor是用來半自動地構(gòu)造含有紋理貼圖的建筑物的LOD模型,CityEditor用來根據(jù)代理門和其他一些信息來創(chuàng)建和編輯城市拓撲塊。
5 應(yīng)用實例
筆者利用已有研究成果和公司已有開發(fā)庫在Windows2000環(huán)境下采用VC++6.0,基于OpenGL1.2和Direct3D8.0立即模式實現(xiàn)了城市三維景觀系統(tǒng)M3DVIEW的開發(fā)。該系統(tǒng)由三維景觀編輯子系統(tǒng)MapCC和三維景觀瀏覽子系統(tǒng)Map3DViewer兩個子系統(tǒng)組成。其中,三維場景編輯子系統(tǒng)主要用來構(gòu)造、編輯虛擬場景;三維景觀瀏覽子系統(tǒng)是用來瀏覽、輸出虛擬場景。整個系統(tǒng)有八個主要功能模塊,分別是:場景創(chuàng)建、場景修飾物、紋理映射及管理、空間定位及屬性查詢、空間量測與分析、三維實體標注管理、實時漫游和場景輸出。該系統(tǒng)運用虛擬現(xiàn)實技術(shù),結(jié)合先進的二維和三維圖形處理技術(shù),能夠?qū)嶋H城市景觀進行快速、真實三維可視化,實現(xiàn)了在微機上對大規(guī)模場景的實時仿真,可方便地進行三維空間查詢、測算、分析等,在實踐中收到了很好的效果。
6 結(jié)束語
筆者結(jié)合近年來的研究成果和實際開發(fā),探討了城市三維景觀系統(tǒng)的可視化技術(shù)及應(yīng)用。應(yīng)指出的是作為數(shù)字城市基礎(chǔ)的3DUGIS集成了計算機、GIS、CAD、測繪、遙感等很多領(lǐng)域的研究成果,涉及這些領(lǐng)域的許多方面,目前有許多理論和技術(shù)問題需要解決。
城市三維景觀的深入應(yīng)用還有許多研究工作要做:①大面積建筑群體的高效建模技術(shù);②大規(guī)模城市景觀的實時瀏覽;③高效的城市實體數(shù)據(jù)模型及數(shù)據(jù)結(jié)構(gòu);④虛實結(jié)合的三維動畫技術(shù);⑤城市景觀與VR技術(shù)的結(jié)合,即虛擬地理信息系統(tǒng)VirtualGIS;⑤基于網(wǎng)絡(luò)的數(shù)字城市三維景觀發(fā)布技術(shù);①三維空間分析的描述及交互式操作;③三維表面分析,三維剖面分析等。這些也是我們今后的努力方向。
參考文獻:
[1]AHeinonen,SPulkkinen,IRakkolainen.AnInformationDatabaseforVRMLCities[J].IEEEComputerScoeity,2000,(3):469-473.
[2]JiriZara,PavelChromy,etal.AScaleableApproachtoVisualizationofLargeVirtualCities[J].IEEETransonVisualizationandComputerGraphics,2001,1(3):639-644.
[3][美]JulioSanchez,MariaPCanton.DirectX3D圖形編程寶典[M].韓傳釗,尹巖青,等.北京:電子工業(yè)出版社,2000.
[4]J rgenD llner*,KlausHinrichs.AnObject-OrientedApproachforIntegrating3DVisulizationSystemsandGIS[J].Computers&Geo-sciences,2000,26:67-76.
[5]MReddy,LVerson,YGLeclrc.UndertheHoodofGeoVRML1.0[DB/OL].Proceedingsofthe5thWeb3D/VRMLSymposium.2000.http://www.ai.sri.com/geovrml/.
[6]SethTeller,DelnazKhorramabodi.TheUCBerkeleySystemforInte-ractiveVisualizationofLargeArchitecturalModels[R].TheMassa-chusettsInstituteofTechnology,1996.
[7]SiykaZlatanova,MGruber.3DGISontheWeb[C].Stuttgart,Germa-ny:ProceedingsofISPRS,Com.IV,1998.691-699.
[8]陳國軍,葉飛躍,楊黎明.三維圖形生成支撐環(huán)境綜述[J].計算機應(yīng)用研究,2001,18(5):1-3.
[9]陳華斌,王彤.虛擬建筑環(huán)境實時漫游系統(tǒng)的設(shè)計和實現(xiàn)[J].西南交通大學(xué)學(xué)報,2001,36(1):53-56.
[10]龔健雅.矢量與柵格集成的三維數(shù)據(jù)模型[J].武漢測繪科技大學(xué)學(xué)報,1997,22(1):7-15.
[11]李青元,林宗堅,李成明.真三維GIS技術(shù)研究的現(xiàn)狀與發(fā)展[J].測繪科學(xué),2000,25(2):47-51.
[12]李德仁,李清泉.一種三維GIS混合數(shù)據(jù)結(jié)構(gòu)研究[J].測繪學(xué)報,1997,26(2):128-133.
[13]朱英浩,張祖勛,張劍清.基于MapInfo的城市三維可視化GIS[J].測繪通報,2000,(7):1-3.