馬 天,韋 冠
(西安科技大學計算機科學與技術學院,陜西 西安 710054)
虛擬現實(Virtual reality,簡稱VR)技術發展迅速,并已廣泛應用于數字礦山[1-3]、軍事工業[4]、醫學教育、城市規劃等各行業中。應用VR技術對建筑物進行實時交互漫游,能夠給人們帶來沉浸式的視覺體驗。越來越多的國內外高校通過三維交互漫游技術,設計了虛擬校園系統,達到了很好的宣傳效果,并可幫助新生盡快熟悉校園。因此,設計開發西安科技大學臨潼校區三維虛擬校園系統,具有一定的理論意義和應用價值。虛擬校園系統一般是應用在桌面電腦平臺上,前期多是基于 OpenGL,DirectX 圖形接口[5]實現,開發周期較長、系統效率不穩定;為了簡化開發流程、提高提高渲染效果,目前一般是采用開源三維渲染引擎 OSG[6],Ogre等,或者商業軟件 VR-Platform[7],Vega 等進行開發;近來也有引入 GIS 系統[8]和在移動平臺上[9]的開發應用。
綜合考慮上述虛擬校園系統的優缺點,基于節約開發成本和完全知識產權需求,文中首先基于3D Max三維建模軟件對整個臨潼校區進行三維建模,提出了一種大規模建筑物場景的劃分建模方法。然后,基于VS2005平臺和OSG三維渲染引擎,對臨潼校區三維虛擬校園系統進行設計實現,提出了一種自主漫游碰撞檢測方法,并實現了自動路徑場景定位功能。
在正式建模之前,對臨潼校區進行了大量的照片采集,觀察分析校區整體結構及建筑物特點。仔細分析策劃各部分建模的先后次序,把握各階段建模工作的難易程度,理清場景模型的分類處理流程。
以臨潼校區平面圖和衛星圖片為基礎,通過分析臨潼校區整體結構,決定首先進行校園縱橫穿插的道路地形建模,然后依此為基礎進行建筑物區域劃分,就可確定整個校園的建筑之間的相對位置和結構錐形,后續建立的建筑物模型只需放置到對應位置并做適當的調整即可,這也可大大縮短建模工作的時間。具體步驟如下
1)基于衛星圖片和采集照片資料,對主干道路和地形地貌建模;
2)以主干道路進行建筑物區域劃分,如圖1所示,主要分為:廣場教學區、9-18教學區、教師公寓區、學生宿舍區、體育場區、食堂區等;
3)對各區域內建筑物進行分類,主要分為:教學樓、教師公寓樓、學生宿舍樓、圖書館、體育館、綜合樓、行政樓等主要建筑,用3D Max對各主要建筑分別建模,最后倒出成單獨的三維模型文件;
4)根據區域劃分,用3D Max分場景進行建模,直接導入步驟(3)中所需的主要建筑,調整相對位置以符合真實布局,同樣倒出成單獨的三維模型文件;
5)在步驟(1)的場景里分別倒入步驟(4)里各個區域的場景模型,調整相對位置以符合真實布局,完成整個校區場景的三維建模。最后,所有模型統一使用3D Max的osgExp插件倒出成IVE格式,方便后續三維引擎OSG進行模型調度。

圖1 基于衛星圖的區域劃分Fig.1 Zoning based on satellite image
道路建模,采用3D Max中樣條線的描線段法進行道路畫線,然后轉換為“可編輯多邊形”,設置漫反射紋理,并通過“UVW貼圖”修改器調整;地形建模,填補路面之間的空隙,編輯調整地形高程,設置地質紋理。樹木和花壇則使用布告板(Billboard)技術進行建模,建立兩個十字交叉的矩形布告板,設置透明樹木或花紋理。草坪建模,將草坪地面“分離”出來,設置草坪紋理;三里河也是一樣,對河流平面設置一張動態水流紋理即可。
主要建筑建模,首先是紋理圖片采集處理,受到照片采集條件限制,照片會傾斜、遮擋或不完整,需使用圖像處理軟件Photoshop進行拼接、修正,然后保存成2m×2n大小的標準紋理圖片;其次是幾何形狀建立,需要進行分塊建模,對于非標準形狀,可通過“可編輯多邊形”的點、線調整和面“擠出”操作實現,考慮到貼圖作用,墻面等幾何細節可適當簡化,注意:分塊之間連接處的頂點要“焊接”到一起以避免顯示閃爍;然后進行層次細節(Layer of Detail,LOD)模型處理,在精細模型的基礎上,通過簡化處理生成不同級別的低精度模型,可在遠距離觀察時切換使用,而不影響顯示效果,圖2所示為體育館的LOD模型;最后利用3D Max的渲染到紋理(Render to texture,RTT)功能,將離線的高級光照等效果烘焙成高精度紋理貼圖,可在不影響實時性的基礎上提高模型顯示效果。

圖2 體育館LOD模型Fig.2 LOD models of the gymnasium
整個三維場景采用OSG進行管理和繪制,在VS2005平臺通過控制臺應用程序實現,利用OSG的事件回調機制響應用戶交互,狀態和文字信息等的更新通過OSG的更新回調機制實現。
OSG是基于場景圖[10]方式來管理和繪制三維場景,采用一種自頂向下的分層樹形結構來組織數據,以提升繪制的效率。場景圖樹結構的頂部是一個根節點。從根節點向下延伸,各個組節點中均包含幾何信息和用于控制其外觀的繪制狀態信息。本系統場景組織參照1.1節的劃分建模方法,場景樹結構如圖3所示,對于幾何結構相同的建筑只載入一個模型,通過多個osg::MaxtrixTransform節點設置不同的旋轉和位置,來實例化多個同構建筑,例如:10~18號教學樓完全是一樣的結構,只需載入一次“教學樓10”模型;對于結構復雜的建筑模型,需要使用osg:LOD節點來加載不同距離下的LOD模型。

圖3 場景樹結構圖Fig.3 Structure graph of the scene tree
自主漫游交互操作器通過繼承自osgGA:MatrixManipulator類實現,重載其handle()函數來響應鼠標和鍵盤的交互操作,具體是鍵盤4個按鍵控制前、后、左、右移動,鼠標左鍵控制左右和俯仰旋轉,所有移動、旋轉量在響應某個操作時按照固定步長改變;重載getMatrix()和getInverseMatrix()函數,通過矩陣運算將改變后的移動、旋轉量轉換成相應的變換矩陣。

圖4 自主漫游碰撞檢測流程圖Fig.4 Flow chart of independent roaming collision detection
在自主漫游過程中會碰到階梯、斜坡或墻面障礙物等情況,需要設計合理的碰撞檢測方法以修正漫游移動,這里通過osgUtil::IntersectVisiotr類實現,主要使用osg::LineSegment類做線段檢測,具體檢測流程如圖4所示,首先建立正前方的檢測線段lineXY,測試正前方是否有碰撞,如果有需要判斷前方障礙物是斜坡、樓梯還是墻面,因此繼續建立前上方的檢測線段lineXZ,測試前上方是否有碰撞,如果有說明是比較高的墻面,保持不動,如果沒有則說明是斜坡、樓梯,需要沿著前上方向移動;如果正前方沒有碰撞,需要判斷下方是否有斜坡、樓梯,因此繼續建立正下方的檢測線段lineZ,測試正下方是否有碰撞,如果有則沿地面向正前方向移動,如果沒有則說明是斜坡、樓梯,需要向前下方向移動。
臨潼校區主要功能建筑數量不是很多,這里采用人工錄制漫游路徑的方式來實現場景定位。
1)通過osgViewer進行道路模型的瀏覽,按下“Z”鍵可記錄漫游路徑,按下“Z”鍵停止錄制,并自動保存為path格式的路徑文件。這里使用飛行模式分別錄制從大門到圖書館、食堂等功能建筑的漫游路徑。
2)創建一個osgGA:AnimationPathManipulator動畫路徑操作器;
3)使用osgWidget創建簡單界面按鈕,根據按鈕選擇的功能建筑,給動畫路徑操作器關聯所需路徑文件,并將相機漫游器設置為該動畫路徑操作器。
系統開發環境為VS2005 SP1和OSG 2.8.2,運行該系統的主機操作系統為Windows XP SP3,硬件配置為:CPU為Inter Core 2 Duo T5870/2.0 GHz,內存為DDR II 800/2 G,顯卡為NVIDIA Ge-Force G105 M/512 M,硬盤 SATA 250 G/7200/16 M.系統運行的臨潼校區全景效果如圖5所示,三維顯示效果達到預期。經測試,平均幀速為58幀/s,完全滿足實時交互的需求(≥30幀/s)。

圖5 系統運行截圖Fig.5 Screenshot of the system
文中提出的一種大規模建筑物場景的劃分建模方法,可最大限度的提高模型的復用率和建模效率。經應用測試,基于3DMax和OSG設計實現的臨潼校區三維虛擬校園系統,實現了自主漫游的碰撞檢測、自動路徑場景定位交互功能。該系統滿足了整個校區的實時三維交互漫游的要求,達到了預期的三維顯示效果。后續,繼續進行模型顯示優化和交互功能完善,并考慮進行網絡編程改造,然后放到校園網站上以達到最大的應用宣傳效果。
References
[1]陳 宇,劉 勇,李紹泉.數字礦山信息管理系統的設計與實現[J].西安科技大學學報,2012,32(6):732-735.CHEN Yu,LIU Yong,LI Shao-quan.Design and implementation of digital mine information management system[J].Journal of Xi’an University of Science and Technology,2012,32(6):732 -735.
[2]周亦鵬,胡 娟.基于三維全景技術的數字礦山漫游系統[J].金屬礦山,2012(5):116-120.ZHOU Yi-peng,HU Juan.Digital mine roaming system based on 3D panorama technology[J].Metal Mine,2012(5):116-120.
[3]賈建華,張艮龍.巷道三維顯示自動建模新方法[J].西安科技大學學報,2010,30(6):716 -719.JIA Jian-hua,ZHANG Gen-long.3D visualization of roadway based on ArcGIS[J].Journal of Xi’an University of Science and Technology,2010,30(6):716 -719.
[4]馬 天,黃建國,高 偉,等.應用GPU編程的水聲對抗視景系統關鍵技術研究[J].哈爾濱工程大學學報,2012,33(3):289 -295.MA Tian,HUANG Jian-guo,GAO Wei,et al.Visual realization of an acoustic confrontation simulation system using GPU programming[J].Journal of Harbin Engineering University,2012,33(3):289 -295.
[5]陳 勇,馬純永,陳 戈.基于VC/OpenGL的虛擬海大校園導航系統[J].計算機輔助設計與圖形學學報,2007,19(2):263 -267.CHEN Yong,MA Chun-yong,CHEN Ge.Virtual campus navigation of ocean university based on VC/OpenGL[J].Journal of Computer-aided Design & Computer Graphics,2007,19(2):263 -267.
[6]溫轉萍,申閆春.基于OSG的虛擬校園漫游系統的設計與實現[J].計算機技術與發展,2009,19(1):217-220.WEN Zhuan-ping,SHEN Yan-chun.Design and implementation of visual campus ramble system based on OSG[J].Computer Technology and Development,2009,19(1):217-220.
[7]楊宏艷,史 卓,鐘艷如.基于虛擬現實的數字化校園漫游系統設計[J].桂林電子科技大學學報,2011,31(4):287-291.YANG Hong-yan,SHI Zhuo,ZHONG Yan-ru.Design of digital campus roaming system based on virtual reality technology[J].Journal of Guilin University of Electronic Technology,2011,31(4):287 -291.
[8]XU Ke-ke.Design and implementation of 3D virtual campus roaming system based on GIS[J].Intelligent Systems(GCIS),2010 Second WRI Global Congress,2010(2):137-139.
[9]ZHONG Qing,XU Yi,YU Xiao-han,et al.Study of the virtual campus ramble for the android mobile phone[J].Advanced Materials Research,2013(718 - 720):2252-2258.
[10]WANG Rui,QIAN Xue-lei.Open scene graph 3 cookbook[M].Birmingham:Packt Publishing,2012.