毛新光
(閩江學院現代教育技術中心,福建福州 350108)
隨著互聯網的發展,三維數字校園成為智慧校園建設的重要一環[1]。三維數字校園建模技術較多,不同軟件有不同的表達形式[2],目前主要的建模方法有基于傾斜的三維建模、GIS 輔助三維建模、Auto CAD 與3DS MAX 結合建模[3-4]、基于Sketch Up 三維建模等技術[5-7]。傳統的3D studio Max、Multigen 等制作軟件缺點是運行時需加載大量數據,構建場景速度較慢,同時創建的三維場景不能將空間地理數據、屬性數據和動態數據聯系在一起管理、分析和應用。本文提出以.NET 為平臺,結合ArcGIS Engine 開發組件和模型庫,開發基于模型庫的空間地理數據庫動態調用的三維數字校園場景構建方式。通過使用GIS 技術建立的三維數字校園,實現將空間地理數據、屬性數據和動態數據聯系在一起管理、分析和應用,對校園管理、規劃建設、應急處理起到輔助決策作用[8],通過三維地理信息系統加快校園信息化建設步伐[9]。
本文采用數據庫共享接口方式構建三維數字校園,它通過在系統中嵌入應用程序接口(API)訪問系統數據。ESRI 的ArcSDE 具有CAD 客戶端擴展程序,允許用戶在數據庫管理系統(DBMS)中存儲、提取CAD 要素或GIS 特征[10],如圖1 所示。使用CAD 系統(如3DS Studio MAX等)軟件可設計出較為逼真的三維場景實物,但三維地理數據分析功能較為欠缺[11-12]。地理信息系統具有較強的管理與分析數據功能,但三維地物的編輯功能較為欠缺。因此,可將GIS 和CAD 結合構建出真實、逼真的三維場景[13]。

Fig.1 Database sharing mode圖1 數據庫共享方式
根據三維場景中實物的分類表達規則和組成要素不同,將基于三維對象模型的數據庫設計分為建筑物模型庫、建筑物紋理庫、地面覆蓋模型庫、獨立對象模型庫[14]。三維場景實現離不開數據庫支持,一個設計良好的數據庫對系統功能實現十分重要。三維場景數據庫設計包括基于模型庫的數據庫設計和實體模型屬性數據庫設計。三維場景數據庫設計元素如圖2 所示。

Fig.2 Three-dimensional scene design elements圖2 三維場景設計元素
針對三維數字校園場景中不同的三維實體模型采取不同的構建方法。
在ArcGIS Engine 中可通過二維的點、線、面要素和坐標Z 經過拉伸構建三維場景中的三維模型。通過Z 坐標或者要素屬性字段值經過拉伸點構成三維數字校園場景中垂直的線,線要素構成面,面要素構成塊。
下面以一個面為例介紹二維矢量數據生成三維模型過程。實現算法如下:①獲取三維數字校園場景要拉伸的圖層;②添加紋理。由于三維數字校園場景中的地物比較簡單,采用矢量圖層符號化時,面圖層用IFillSymbol,點圖層用IMarkerSymbol,線圖層用ILineSymbol,這是以一個面為例創建一個紋理接口類型的符號,從紋理數據庫中調用要填充的紋理;③將要渲染的地理要素圖層pGeoFeature-Layer 對象設置為Psimplerenderer 進行渲染;④設置矢量圖層基準高,使矢量數據拉伸到某一固定值,此值可在程序中直接指定;⑤將三維屬性應用到ppLayer 矢量圖層,使圖層具有三維顯示效果。
核心代碼如下:

在CAD 中繪制地形圖,保存邊界線,然后導入3DS Max 中。利用建模方法制作白模型,在Photoshop 中對采集的圖片進行處理,貼到白模型上,得到具有真實紋理的三維建筑物模型[15]。利用IMarker3DSymbol 接口創建一個接口對象[16-17],然后利用該對象對應的方法CreateFromFile讀取數據庫中建筑物的模型對象,創建一個SceneControl控件對應的容器對象,將該對象加載到圖層對應的容器中,起到動態加載三維場景目的,從而快速構造出三維數字校園場景。
主要算法為:①首先創建一個新圖層,然后把該圖層添加到三維場景依托的控件SceneControl 對象中;②設立一個點的新元素,該點就是三維模型要加載的位置。本例為動態向三維場景加載模型,采取利用文本框輸入經緯度方法動態確定加載三維模型位置;③利用IMarker3DSymbol接口創建一個接口對象,然后利用該對象對應的方法CreateFromFile 讀取數據庫中建筑物和獨立模型對象;④創建一個SceneControl 控件對應的容器對象,然后將該對象加載到圖層對應的容器中,起到動態加載三維場景目的。
核心代碼如下:


構建三維數字校園非典型建筑物時,它們具有相似的結構和紋理,針對這種情況,可先構建建筑物的基本實體單位[18-20],并將該實體入庫,然后在構建三維數字校園實體時直接調用建筑物模型庫中單位實體模型,構建成組合模型,快速建立三維數字校園場景中的實體。主要算法為:①首先創建一個新圖層,然后把新圖層添加到三維場景依托的控件SceneControl 對象中;②設立一個點的新元素,該點就是三維模型要加載的位置。本例是動態向三維場景加載模型,采取的是利用文本框輸入經緯度動態確定加載三維模型位置。由于是組合模型,所以在設立一個新元素時底層新元素的Z 值取0,加載中間的三維模型庫中的模型時,Z 值是底層模型的Z 值,頂層模型值是底層和中間層Z 值的和。
核心代碼如下:

對于結構簡單、規則,逼真度要求不高的三維數字校園實體,可對規則的三維模型如長方體、正方體等進行紋理貼圖。采用多片MultiPatch 制作三維數字校園實體的大致模型,通過輸入規則模型在平面的投影坐標,以及實體模型的長、寬、高3 個參數確定三維實體模型各個頂點的坐標,然后對三維實體模型的前后左右面及頂部進行紋理貼圖構造三維模型。
核心代碼如下:

利用上述快速動態構建三維場景方法建立閩江學院三維數字校園,如圖3 所示。

Fig.3 Three-dimensional digital campus of Minjiang University圖3 三維顯示的閩江學院數字校園
本文使用ArcGIS Engine、3D Max、空間地理數據庫、Visual studio .NET 等開發技術,采用動態快速建模方法建立了可視化的閩江學院三維數字化校園,為學校管理提供技術支撐,同時也帶來直觀、真實的感知和認識[21]。創建的三維數字校園場景極大推進了閩江學院智慧校園建設。本文提出快速動態建立三維場景思想不僅可以應用于三維校園數字化系統,而且在開發其它可視化三維地理信息系統中也具有重要參考價值。利用ArcGIS Engine 與基于模型庫的空間地理數據庫相結合的快速建模方法構建三維數字校園場景取得了很好的效果。后續對構成三維場景的要素還要進一步精細化,屬性數據庫還要進一步完善,系統功能還需進一步開發。