曹航程,馬志遂 ,盛佳龍,靳博文,范少通
(河南師范大學,河南 新鄉 453007)
?
基于虛擬現實的室內布局系統及碰撞檢測算法研究
曹航程,馬志遂 ,盛佳龍,靳博文,范少通
(河南師范大學,河南 新鄉 453007)
摘 要:虛擬現實技術是融合了計算機圖形學、多媒體技術、智能人機接口技術及傳感器技術的一門交叉技術。與三維靜態模型相比,它增加了交互性,給系統用戶帶來完全的沉浸感和想象空間。根據室內裝修行業的發展需要,其建立了基于VRML語言的網頁三維實時漫游系統,通過AABB碰撞檢測算法對區域精確檢測的改進,實現了對算法儲存空間的節省和運行速度的提升。該文闡述了場景構建、模型生成及碰撞優化技術,涉及了本虛擬現實系統中技術的研究內容和方向。
關鍵詞:虛擬現實;人機接口技術;計算機仿真;碰撞優化
所謂虛擬現實,即可以創建、體驗虛擬世界的計算機仿真系統,其可生成一種多源信息融合的交互式的三維動態視景,通過對實體行為的系統仿真使用戶沉浸[1]到該環境中。虛擬現實技術使用特定的軟件和硬件設備使人產生身臨其境的感覺,令使用者有極強的參與感。通過在三維場景中漫游,用戶獲得家居室內整體布局的全景并且準確發現虛擬景象反映現實中存在的問題。基于高性能計算機軟硬件,借助高敏感度傳感裝置,搭建虛擬現實系統,形成逼真的三維視聽感覺。參與者擁有完全的交互能力,得到最真實感觸并及時做出反應。本文所研究的桌面虛擬現實系統是基于普通PC平臺進行圖像及仿真處理,計算機的屏幕作為參與者觀察虛擬環境的實時窗口。
在虛擬環境中,人的視覺感受是影響系統逼真程度的關鍵因素,其中虛擬模型和場景及觀察坐標轉換尤為重要。在虛擬現實世界中,物體可看成存在特定三維坐標系,用(X,Y,Z)分別代替長寬高。任何物質都是由無限多的粒子構成,每一粒子均可在坐標系中找到對應的位置。漫游系統中采用局部坐標系、世界坐標系、觀察坐標系及屏幕坐標系[2]的分層次坐標系統。在局部坐標系中,需要對每一個引用實體定義,包括坐標原點,長度單位及各方向邊緣坐標點。世界坐標系是最高層的圖形結構,需包含總的虛擬環境,并與局部坐標[3]融合。局部的各個點坐標均可通過經過旋轉和平移轉化其中,即通過特定算法由(x1,y1,z1)到(x2,y2,,z2)的過程。觀察坐標可在為存在于任一點、任意方向,用于指定裁剪空間并定義投影平面。
為了向用戶提供最為真實的沉浸感,在虛擬環境中逼真地顯示出客觀世界是其基本條件。視覺建模技術[4]包括幾何建模、運動建模、物理建模、對象行為建模及模型分割等,涉及自由度(DOF)、細節度(LOD)和紋理映射。利用幾何建模,對實體做出幾何描述,其中包括輪廓、形狀、基元表面屬性及連接性等,并將其輸入到圖形數據庫中。
基于AABB包圍盒的碰撞檢測算法:沿坐標軸平行的包圍盒AABB(axis-aligned bounding boxes)在碰撞檢測的發展歷史中使用得最為久遠,也是目前使用較為普遍的方法。一個給定的對象被替換為包含該對象且各邊平行于坐標軸的最小且最為接近對象的六面體。通過遍歷對象所有的節點,找出各方向極點坐標,做相交測試通過比較兩個AABB包圍盒在各坐標軸上的投影區間是否均重疊來判定碰撞情況。在碰撞算法的優劣判斷中,引入一個耗費函數文獻[5]作為分析依據:T=N1*C1+N2*C2+N3*C3。
在本文系統所設計的AABB碰撞檢測算法中,以N1及C2為算法改進點。類比樹的類別二叉樹具有更好的穩定性及快速檢測能力,把一個結點分裂成兩個比分成三個或更多的子集所要做的選擇要少得多。故本次采用[6]二叉樹構造,并盡最大可能增大樹的度,減少每個節點的工作量。
2.1 平衡AABB二叉樹的構造
層次包圍樹[7]最多有2n-1個結點,最大高度大于logδN。將實體AABB包圍盒作為根節點,遞歸所得的各子部分互不相交,依次以自上而下形成層次結構,并從根節點遍歷至葉節點。步驟如下:(1)選取分裂平面,將整個空間劃分為半閉空間,這樣會出現3種情況,為幾何元素屬于右閉空間、左閉空間及相交于平面。(2)以包圍盒跨度最大軸作為平面的法線軸,這樣有|Sn|-1種劃分可能,將元素在分裂軸上的投影中值作為分裂點。若以平均值作為分裂點,會損害樹的平衡性。
2.2 4EAI及Script接口的使用
VRML提供與外部程序實現鏈接的[8]接口機制,即內部Script接口和外部EAI接口,其基于TimeSensor的靜態行為和基于程序的動態行為產生事件,這種方式無法使場景與使用者產生動態的即時互動。EAI為Java語言和VRML Plug-in提供雙向橋梁,Java可通過它得到物體信息并控制物體,用戶通過EAI真正成為環境的參與者。一個節點產生EventOut事件,與之關聯的EventIn會收到信息并進行處理,從而實現訪問VRML場景的節點、發送給任一節點EventIn事件和讀取節點EventOut事件。Java Applet可利用EAI訪問任意物體,Script節點只能訪問包含于其本身的節點,二者的配合使用可實現最佳效果。
EAI交互過程[9]如下:(1)由GetbBrower()類使用GetBrower()方法獲得當前場景信息。(2)通過GetNode()方法獲得Node類實例以訪問節點。(3)獲得實例后,利用類本身提供的GetEventIn()和GetEventOut()方法訪問節點。(4)若想實現動態刪除可使用方CreatVrmlFromString(),并返回一個在外部環境中生成的Node類實例數組。(5)接收事件發出口的更新值,激活Callback方法。
本文描述了一個基于VRML虛擬建模語言及Java的網頁應用程序,并詳細介紹了其中涉及的碰撞檢測算法、接口銜接及數據庫構造等。系統中根據用戶的實際需要,簡化了對虛擬環境人物模型動作的動作要求,更多注重于三維模型的外觀細節處理,極大縮短了算法計算所需時間,這對于裝修行業及其用戶有著重要的使用價值。
[參考文獻]
[1]張占龍,羅辭勇,何為.虛擬現實技術概述[J].計算機仿真,2005(3):30-32.
[2]婁淵勝,朱躍龍,黃河,張黨勝.基于虛擬現實技術的實時漫游系統研究及實現[J].計算機工程,2001(6):20-25.
[3]張云輝,高滿屯,吳建軍,等.工程圖中建立各分視圖坐標中心及局部坐標系的算法[J].工程圖學學報,2009(4):30-36.
[4]趙沁平.虛擬現實綜述[J].中國科學(F輯:信息科學),2009(1):30-34.
[5]王曉榮.基于AABB包圍盒的碰撞檢測算法的研究[D].武漢:華中師范大學,2007.
[6]姜光焱.基于包圍盒的碰撞檢測算法的研究及應用[D].成都:電子科技大學,2012.
[7]王洪.基于虛擬現實的三維漫游技術研究與實踐[D].成都:電子科技大學,2004.
[8]馬萬全,單美賢.基于VRML/JAVA的虛擬場景交互的實現[J].蘇州大學學報:工科版.2006(4):30-32.
[9]宋麗紅,華斌.基于VRML和Java技術的虛擬校園三維查詢系統[J].計算機工程,2005(6):30-36.
The Interior Layout System and Research of Collision Detection Algorithm Based on Virtual Reality
Cao Hangcheng,Ma Zhisui,Sheng Jialong,Jin Bowen,Fan Shaotong
(Henan Normal University,Xinxiang 453007,China)
Abstract:Virtual reality is a cross technology which is the integration of computer graphics,multimedia technology,intelligent manmachine interface technology,the sensor technology and so on. Compared with the static 3D models,it increased the interactivity,and a user of the system has completely immersed sense and imagination. According to the need of the development of interior decoration industry,we establish the system which is based on Web 3D real-time walkthrough of Virtual Reality Modeling Language (VRML).By the improvement of AABB collision detection algorithm for accurate detection of regional,this system realizes the save of storage space and enhances the operating speed up. This paper describes the scene construction,model generation and collision optimization,which connect with the research content and direction in the virtual reality system.
Key words:virtual reality;man-machine interface;computer simulation;collision optimization
基金項目:河南師范大學校級“大學生創新創業計劃”;項目編號:20140143,20150013。
作者簡介:曹航程(1995-),男,河南信陽。