曹航程,馬志遂 ,盛佳龍,靳博文,范少通
(河南師范大學(xué),河南 新鄉(xiāng) 453007)
?
基于虛擬現(xiàn)實的室內(nèi)布局系統(tǒng)及碰撞檢測算法研究
曹航程,馬志遂 ,盛佳龍,靳博文,范少通
(河南師范大學(xué),河南 新鄉(xiāng) 453007)
摘 要:虛擬現(xiàn)實技術(shù)是融合了計算機圖形學(xué)、多媒體技術(shù)、智能人機接口技術(shù)及傳感器技術(shù)的一門交叉技術(shù)。與三維靜態(tài)模型相比,它增加了交互性,給系統(tǒng)用戶帶來完全的沉浸感和想象空間。根據(jù)室內(nèi)裝修行業(yè)的發(fā)展需要,其建立了基于VRML語言的網(wǎng)頁三維實時漫游系統(tǒng),通過AABB碰撞檢測算法對區(qū)域精確檢測的改進,實現(xiàn)了對算法儲存空間的節(jié)省和運行速度的提升。該文闡述了場景構(gòu)建、模型生成及碰撞優(yōu)化技術(shù),涉及了本虛擬現(xiàn)實系統(tǒng)中技術(shù)的研究內(nèi)容和方向。
關(guān)鍵詞:虛擬現(xiàn)實;人機接口技術(shù);計算機仿真;碰撞優(yōu)化
所謂虛擬現(xiàn)實,即可以創(chuàng)建、體驗虛擬世界的計算機仿真系統(tǒng),其可生成一種多源信息融合的交互式的三維動態(tài)視景,通過對實體行為的系統(tǒng)仿真使用戶沉浸[1]到該環(huán)境中。虛擬現(xiàn)實技術(shù)使用特定的軟件和硬件設(shè)備使人產(chǎn)生身臨其境的感覺,令使用者有極強的參與感。通過在三維場景中漫游,用戶獲得家居室內(nèi)整體布局的全景并且準(zhǔn)確發(fā)現(xiàn)虛擬景象反映現(xiàn)實中存在的問題?;诟咝阅苡嬎銠C軟硬件,借助高敏感度傳感裝置,搭建虛擬現(xiàn)實系統(tǒng),形成逼真的三維視聽感覺。參與者擁有完全的交互能力,得到最真實感觸并及時做出反應(yīng)。本文所研究的桌面虛擬現(xiàn)實系統(tǒng)是基于普通PC平臺進行圖像及仿真處理,計算機的屏幕作為參與者觀察虛擬環(huán)境的實時窗口。
在虛擬環(huán)境中,人的視覺感受是影響系統(tǒng)逼真程度的關(guān)鍵因素,其中虛擬模型和場景及觀察坐標(biāo)轉(zhuǎn)換尤為重要。在虛擬現(xiàn)實世界中,物體可看成存在特定三維坐標(biāo)系,用(X,Y,Z)分別代替長寬高。任何物質(zhì)都是由無限多的粒子構(gòu)成,每一粒子均可在坐標(biāo)系中找到對應(yīng)的位置。漫游系統(tǒng)中采用局部坐標(biāo)系、世界坐標(biāo)系、觀察坐標(biāo)系及屏幕坐標(biāo)系[2]的分層次坐標(biāo)系統(tǒng)。在局部坐標(biāo)系中,需要對每一個引用實體定義,包括坐標(biāo)原點,長度單位及各方向邊緣坐標(biāo)點。世界坐標(biāo)系是最高層的圖形結(jié)構(gòu),需包含總的虛擬環(huán)境,并與局部坐標(biāo)[3]融合。局部的各個點坐標(biāo)均可通過經(jīng)過旋轉(zhuǎn)和平移轉(zhuǎn)化其中,即通過特定算法由(x1,y1,z1)到(x2,y2,,z2)的過程。觀察坐標(biāo)可在為存在于任一點、任意方向,用于指定裁剪空間并定義投影平面。
為了向用戶提供最為真實的沉浸感,在虛擬環(huán)境中逼真地顯示出客觀世界是其基本條件。視覺建模技術(shù)[4]包括幾何建模、運動建模、物理建模、對象行為建模及模型分割等,涉及自由度(DOF)、細節(jié)度(LOD)和紋理映射。利用幾何建模,對實體做出幾何描述,其中包括輪廓、形狀、基元表面屬性及連接性等,并將其輸入到圖形數(shù)據(jù)庫中。
基于AABB包圍盒的碰撞檢測算法:沿坐標(biāo)軸平行的包圍盒AABB(axis-aligned bounding boxes)在碰撞檢測的發(fā)展歷史中使用得最為久遠,也是目前使用較為普遍的方法。一個給定的對象被替換為包含該對象且各邊平行于坐標(biāo)軸的最小且最為接近對象的六面體。通過遍歷對象所有的節(jié)點,找出各方向極點坐標(biāo),做相交測試通過比較兩個AABB包圍盒在各坐標(biāo)軸上的投影區(qū)間是否均重疊來判定碰撞情況。在碰撞算法的優(yōu)劣判斷中,引入一個耗費函數(shù)文獻[5]作為分析依據(jù):T=N1*C1+N2*C2+N3*C3。
在本文系統(tǒng)所設(shè)計的AABB碰撞檢測算法中,以N1及C2為算法改進點。類比樹的類別二叉樹具有更好的穩(wěn)定性及快速檢測能力,把一個結(jié)點分裂成兩個比分成三個或更多的子集所要做的選擇要少得多。故本次采用[6]二叉樹構(gòu)造,并盡最大可能增大樹的度,減少每個節(jié)點的工作量。
2.1 平衡AABB二叉樹的構(gòu)造
層次包圍樹[7]最多有2n-1個結(jié)點,最大高度大于logδN。將實體AABB包圍盒作為根節(jié)點,遞歸所得的各子部分互不相交,依次以自上而下形成層次結(jié)構(gòu),并從根節(jié)點遍歷至葉節(jié)點。步驟如下:(1)選取分裂平面,將整個空間劃分為半閉空間,這樣會出現(xiàn)3種情況,為幾何元素屬于右閉空間、左閉空間及相交于平面。(2)以包圍盒跨度最大軸作為平面的法線軸,這樣有|Sn|-1種劃分可能,將元素在分裂軸上的投影中值作為分裂點。若以平均值作為分裂點,會損害樹的平衡性。
2.2 4EAI及Script接口的使用
VRML提供與外部程序?qū)崿F(xiàn)鏈接的[8]接口機制,即內(nèi)部Script接口和外部EAI接口,其基于TimeSensor的靜態(tài)行為和基于程序的動態(tài)行為產(chǎn)生事件,這種方式無法使場景與使用者產(chǎn)生動態(tài)的即時互動。EAI為Java語言和VRML Plug-in提供雙向橋梁,Java可通過它得到物體信息并控制物體,用戶通過EAI真正成為環(huán)境的參與者。一個節(jié)點產(chǎn)生EventOut事件,與之關(guān)聯(lián)的EventIn會收到信息并進行處理,從而實現(xiàn)訪問VRML場景的節(jié)點、發(fā)送給任一節(jié)點EventIn事件和讀取節(jié)點EventOut事件。Java Applet可利用EAI訪問任意物體,Script節(jié)點只能訪問包含于其本身的節(jié)點,二者的配合使用可實現(xiàn)最佳效果。
EAI交互過程[9]如下:(1)由GetbBrower()類使用GetBrower()方法獲得當(dāng)前場景信息。(2)通過GetNode()方法獲得Node類實例以訪問節(jié)點。(3)獲得實例后,利用類本身提供的GetEventIn()和GetEventOut()方法訪問節(jié)點。(4)若想實現(xiàn)動態(tài)刪除可使用方CreatVrmlFromString(),并返回一個在外部環(huán)境中生成的Node類實例數(shù)組。(5)接收事件發(fā)出口的更新值,激活Callback方法。
本文描述了一個基于VRML虛擬建模語言及Java的網(wǎng)頁應(yīng)用程序,并詳細介紹了其中涉及的碰撞檢測算法、接口銜接及數(shù)據(jù)庫構(gòu)造等。系統(tǒng)中根據(jù)用戶的實際需要,簡化了對虛擬環(huán)境人物模型動作的動作要求,更多注重于三維模型的外觀細節(jié)處理,極大縮短了算法計算所需時間,這對于裝修行業(yè)及其用戶有著重要的使用價值。
[參考文獻]
[1]張占龍,羅辭勇,何為.虛擬現(xiàn)實技術(shù)概述[J].計算機仿真,2005(3):30-32.
[2]婁淵勝,朱躍龍,黃河,張黨勝.基于虛擬現(xiàn)實技術(shù)的實時漫游系統(tǒng)研究及實現(xiàn)[J].計算機工程,2001(6):20-25.
[3]張云輝,高滿屯,吳建軍,等.工程圖中建立各分視圖坐標(biāo)中心及局部坐標(biāo)系的算法[J].工程圖學(xué)學(xué)報,2009(4):30-36.
[4]趙沁平.虛擬現(xiàn)實綜述[J].中國科學(xué)(F輯:信息科學(xué)),2009(1):30-34.
[5]王曉榮.基于AABB包圍盒的碰撞檢測算法的研究[D].武漢:華中師范大學(xué),2007.
[6]姜光焱.基于包圍盒的碰撞檢測算法的研究及應(yīng)用[D].成都:電子科技大學(xué),2012.
[7]王洪.基于虛擬現(xiàn)實的三維漫游技術(shù)研究與實踐[D].成都:電子科技大學(xué),2004.
[8]馬萬全,單美賢.基于VRML/JAVA的虛擬場景交互的實現(xiàn)[J].蘇州大學(xué)學(xué)報:工科版.2006(4):30-32.
[9]宋麗紅,華斌.基于VRML和Java技術(shù)的虛擬校園三維查詢系統(tǒng)[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,F(xiàn)an 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
基金項目:河南師范大學(xué)校級“大學(xué)生創(chuàng)新創(chuàng)業(yè)計劃”;項目編號:20140143,20150013。
作者簡介:曹航程(1995-),男,河南信陽。