鄭偉濤
(東華理工大學測繪工程學院,江西 南昌 330013)
虛擬現實(Virtual Reality)技術,是20世紀末才興起的一門嶄新的綜合性信息技術。它融合了圖像處理、計算機圖形學、人工智能、多媒體技術、傳感器、網絡以及并行處理技術等多個信息技術分支的最新發展成果[1]。VRML作為一種虛擬現實建模語言,是實現虛擬城市的主要手段之一。用它創建的具有照片紋理的3維城市模型可以使人們身臨其境般感受數字城市[2]。
在構建虛擬城市的過程中,許多學者作了相關的研究,有的學者研究了如何使用VRML語言簡化3D模型,如萬劍華使用VRML中的BillBoard節點實現了樹的建模,并且提出了一種利用多角度平面進行紋理貼圖的方法模擬樹,從而來簡化模型[3]。還有學者研究了使用JavaScript語言和VRML來實現逼真的交互功能,如施貴剛采用了VRML與VrmlScript、JavaScript結合的技術,實現了融入虛擬環境的工具菜單,豐富了與虛擬校園交互的手段,方便用戶操作[4]。考慮到建立虛擬城市特殊性,它需要比較新的、能快速獲得的城市平面地圖。本文探討了從遙感影像中獲取原始圖像,然后通過ArcGIS處理得到需要的城市平面圖,再使用VRML和JavaScript建立虛擬城市。
美國科學家Burdea G和Philippe Coiffet曾在1993年世界電子年會上發表“Virtual Reality Systems and Applications”一文中,提出了一個“VR技術三角形”,它簡明地表示了虛擬現實具有的3個最突出的特征:交互性(Interactivity)、沉浸感(Immersion)、和構想性(Imagination)。
VRML即虛擬現實建模語言,是一種用于建立真實世界的場景模型或人們虛構的三維世界的場景建模語言,也具有平臺無關性,是目前Internet上基于WWW的三維互動網站制作的主流語言,本質上是一種面向web,面向對象的三維造型語言,而且它是一種解釋性語言。
VRML文件的語法主要包括VRML文件頭、節點、原型、造型、腳本和路由等。不是每一個VRML文件都必須包括這幾部分,只有VRML文件頭是必須的。VRML文件空間的場景和造型都是由節點構成的,再通過路由實現動態的交互和感知或者使用腳本文件與外部接口進行動態交互。在VRML文件中“節點”是核心、靈魂。
本文以東華理工大學南昌校區的圖書館為例,在VrmlPad編輯器中通過VRML和ArcGIS建立虛擬圖書館。
數據資料包括校園平面圖、紋理數碼照片、室內結構和周圍環境。室內結構和周圍環境通過拍攝照片和調查記錄得到。
3.1.1 校園平面圖的制作[5]
校園平面圖可以利用已有的二維數字地圖資料,并對途中過失或遺漏的地物采用全站儀進行補測[3]。但是在建立數字城市的過程中,區域范圍很大,對地物的補測是費時費力的。本文的平面圖采用遙感圖像數據作為原始數據資料,通過ArcGIS可以快速制作校園平面圖。
首先通過軟件截取區域的遙感影像,然后通過ArcMap的Georeferencin配準影像。對配準后的影像區域(如圖1)進行矢量化,得到所要研究區域的平面圖[6](如圖2)。

圖1 誤差校正圖

圖2 校園平面圖
3.1.2 紋理數碼圖片的處理
本文通過photoshop3.0對采集回來的原始圖片進行處理。1)首先去掉圖片上不需要的因素,比如人物、條幅。2)通過濾鏡里面的鏡頭矯正,將圖片拉正。3)裁剪拉正后的圖片,去掉多余的部分。4)設置圖像大小,由于VRML貼圖需要較小的圖像,圖像太大會影響其顯示的效果(處理的前后對比圖3)。建筑物頂的紋理則使用配準好的遙感圖像[7]。

圖3 處理的前后對比圖
為了方便與同觀察者進行交互操作,以及實現隨觀察者觀察位置變化顯示相應的場景畫面,VRML提供了一些感覺觀察者行為動作的節點,在VRML中稱為交互功能。VRML使用7種傳感器節點完成感知和反應的交互功能。
第一類傳感器:通過感知瀏覽者對鼠標的操作行為。觸發并輸出事件,實現人機交互(觸摸傳感器、平面傳感器、圓柱體傳感器、球體傳感器)。
第二類傳感器:通過感知瀏覽者在虛擬場景的觀察位置,觸發并輸出事件,實現人機交互(接近傳感器、可視化傳感器、碰撞傳感器)。
左推拉門的部分Script語句:
DEF DoorSwitch_1 Script{
eventIn SFTime touchTime
eventOut MFRotation doorSwing_Changed
field SFInt32 switchState1
field MFRotation open[0 0 5 0,0 5 0-1.571]
field MFRotation close[0 5 0-1.571,0 0 5 0]
url "vrmlscript:
function touchTime(value,time){
if(switchState==1){
doorSwing_Changed=open;
} else{
doorSwing_Changed=close;
}
switchState=3-switchState;
}"
}
實現左門交互的部分路由:
ROUTE Knob_Touch_11.touchTimeTO DoorSwitch_1.touchTime
ROUTE Knob_Touch_11.touchTimeTO Door_Time_3.set_startTime
ROUTE Door_Time_3.fraction_changed TO Door_RotInterp_4.set_fraction
ROUTEDoorSwitch_1.doorSwing_ChangedTO Door_RotInterp_4.set_keyValue
ROUTE Door_RotInterp_4.value_changed TO zuomen.set_rotation
加入背景、燈光、聲音、影像等節點后,生成具有真實地理信息、交互功能的虛擬圖書館(如圖4)。

圖4 虛擬圖書館效果圖
本文介紹了VRML虛擬現實建模語言,結合建立虛擬城市的個性,提出通過遙感圖像并使用ArcGIS處理得到的校園平面地圖,然后由VRML和JavaScript建立了具有交互功能的虛擬圖書館。在以后推廣到建立虛擬城市的過程中起到一定的參考作用。它將測繪所得到的基礎數據(特別是遙感數據)應用到更廣泛的領域中去,使數據得到高效的、科學合理的利用。同時在VRML中加入JavaScript腳本,以實現更加逼真、高級的交互功能和效果。通過ArcGIS得到平面圖以后,還可以編輯區域的屬性信息以及進行空間分析等相關操作。
在本文的研究過程中還發現一些問題:
(1)本文并未將虛擬圖書館嵌入HTML中,以實現網上在線的瀏覽。VRML將3D模型轉化為簡潔的數學表達式,因而只需要在網上發送轉化后的少量數據,而且一旦發送出去就不再需要對模型進行下一步發送,在這一過程中,全部的變化僅僅是在模型中觀察者視點的變化。這樣,在網上僅需不斷傳輸觀察者的方位,大大地節省了數據帶寬。這也是使用VRML建立三維模型而不使用3DMAX類的軟件的原因,將VRML語言和HTML語言結合起來是下一步工作的重點。
(2)對于建立一個虛擬的數字城市,城市平面圖容易快速從遙感圖像上獲取,然后建筑物高度的快速獲取卻有較大的難度,目前主要有從遙感圖像的陰影、以及共線方程上取得建筑物高度。快速、準確地獲取大范圍內建筑物的高度信息也是一個亟待解決的問題。
(3)真實的地形是虛擬城市的重要部分,然而使用VRML建立的模型中忽略了地形這一重要的因素,因為如果考慮地形因素,模型的復雜程度會大大增加,在目前寬帶情況下,使得在線瀏覽虛擬城市變得不可能。這也是建立虛擬城市要處理好的問題。
[1]張德豐,周靈虛擬現實應用技術[M].北京.電子工業出版社.2010.
[2]萬劍華,潘正風,李清泉.基于VRML的虛擬城市的建立[J].測繪通報.2002,(5):17-19.
[3]萬劍華,鄭紅霞,盛輝等.基于VRML的虛擬校園中的三維景觀建模[J].計算機應用與軟件.2004,21(7):82-84.
[4]施貴剛,程效軍,谷川.采用VRML的虛擬校園交互功能的實現[J].工程圖學學報.2009,(1):152.
[5]王志城.基于Google Eearth和ArcGIS的地圖制作[J].科技信息.2011,(23):160-177.
[6]馬燕明,阮見.基于GIS校園信息系統設計與實現[J].東華理工大學學報(自然科學版),2009.32(3).280-282.
[7]龔建華,林琿,譚倩.虛擬香港中文大學校園的設計與初步試驗[J].測繪學報.2002.31(1):39-42.