祁長興+劉峻杭
摘 要:虛擬現(xiàn)實技術在各個領域中的應用十分的廣泛。文中首先闡述了系統(tǒng)設計的流程,根據(jù)室內設計的特點,并結合虛擬現(xiàn)實將室內設計作品以虛擬現(xiàn)實的形式進行展現(xiàn)。室內設計人員通過軟件進行具體的設計,體驗者可以利用虛擬現(xiàn)實來進行沉浸式的體驗。相比較于傳統(tǒng)的室內設計,這樣可以更直觀的、更有效的對設計者的作品進行檢驗,同時也能大大的減少成本和不必要的風險。
關鍵詞:室內設計;虛擬現(xiàn)實;沉浸;碰撞檢測
中圖分類號:TP391.5 文獻標識碼:A
Abstract:Virtual reality technology is widely used in various fields.This paper firstly describes the system design process.According to the characteristics of interior design,works are presented in the form of virtual reality.Interior designers perform specific design in software programs,and users can achieve immersive experience through virtual reality.Compared with the traditional interior design,it enables designers to conduct more intuitive and more effective inspection on their works,which greatly reduces costs and unnecessary risks.
Keywords:interior design;virtual reality;immersion;collision detection
1 引言(Introduction)
虛擬現(xiàn)實技術(VR)是近些年的最為熱門話題,如今在各個領域都有實際的應用[1]。它是仿真技術的一個重要方向,是仿真技術與計算機圖形學人機接口技術、多媒體技術、傳感技術以及網絡技術等多種技術的集合,是一門富有挑戰(zhàn)性的交叉技術前沿學科和研究領域,主要包括模擬環(huán)境、感知、自然技能和傳感設備等方面。
沉浸式虛擬現(xiàn)實(Immersion VR)利用頭盔顯示器把用戶的視覺、聽覺封閉起來,產生虛擬視覺,同時,它利用手套把用戶的手部的觸覺封閉起來,產生虛擬觸覺。系統(tǒng)采用控制器讓參與者對系統(tǒng)主機下達操作命令,與此同時,頭、手均有相應的頭部跟蹤器、手部跟蹤器的追蹤,使系統(tǒng)達到盡可能的實時性[2]。臨境系統(tǒng)是真實環(huán)境替代的理想模型,它具有最新交互手段的虛擬環(huán)境。常見的沉浸式系統(tǒng)有基于頭盔式顯示器的系統(tǒng)、投影式虛擬現(xiàn)實系統(tǒng),本文基于頭盔式顯示器的系統(tǒng)設計。
2 系統(tǒng)設計流程(System design flow)
系統(tǒng)整體分為兩個部分,用戶體驗與設計場景。
2.1 設計場景
設計的部分一共有四個模塊,地面的大小、墻體的設計、添加材質和添加具體的家具。
地面的大小直接關系到了體驗時的活動范圍,而墻體的設計則是要根據(jù)具體的數(shù)據(jù)進行設計,動態(tài)地添加墻體的預制體,并以列表的形式保存在場景中,以便保存成外部文件,添加的材質也是如此,并且要進行邊緣檢測。添加家具的功能包括了添加燈具等細節(jié)部分,將燈的開關與燈具的光源進行關聯(lián),用戶可以在體驗部分進行更加真實的體驗。
2.2 用戶體驗
可以使用兩種方法進行體驗,VR和非VR兩種,在非VR的體驗模式中如同游戲一樣,通過鼠標和鍵盤在這個場景中進行交互,VR的體驗模式則是使用設備進行移動和交互[3]。
3 虛擬現(xiàn)實的功能交互設計(Functional interaction
design of virtual reality)
利用官方提供的插件給軟件添加VR的功能,在場景中添加一個模擬的人形對象,將VR的攝像頭移動到頭部,并通代碼將對象的位置與VR頭盔的位置將其關聯(lián),實現(xiàn)移動功能,如果使用者沒有足夠大的空間進行移動則需要利用控制器進行移動,利用手柄控制器上的觸摸鍵來實現(xiàn)前后左右的移動。同時,利用手柄控制器上的按鍵來模擬人的手,在場景中實現(xiàn)抓和按等功能[4-6]。
虛擬現(xiàn)實設備只是工具,實際的功能需要算法來實現(xiàn),虛擬現(xiàn)實中使用者與虛擬場景的交互主要使用碰撞檢測技術來實現(xiàn)。
4 碰撞檢測(Collision detection )
碰撞檢測在一個3D的場景中使用率特別高,在許多的功能中都需要用到碰撞檢測,如場景的搭建、交互。虛擬現(xiàn)實中的場景交互中一定要用到碰撞檢測,例如移動路線中遇到障礙物與場景中的對象進行交互,這些功能都需要碰撞檢測。
4.1 “材質”邊緣檢測
材質的邊緣檢測主要讓同一種材質之間不會有過大的縫隙,通過遍歷每一個材質對象,檢測它們之間的距離關系。例如參照對象Oa和對象Ob,需要比較兩者之間的坐標關系,這里我們只需要考慮x、y兩個軸,比較兩者間同一軸的距離并與規(guī)定的距離Lx和Ly比較。
|Oax-Obx|-Lx
|Oay-Oby|-Ly
比較兩個差值的絕對值,取差值最小的一軸,再通過比較來判斷兩個對象的位置關系,如圖1所示。
Oax-Obx>0,Ob在Oa的左側
Oax-Obx<0,Ob在Oa的右側
Oay-Oby>0,Ob在Oa的后側
Oay-Oby<0,Ob在Oa的前側
得出位置關系后通過改變坐標位置使兩個對象之間達到規(guī)定的距離。
左側,Obx=Oax-Lx
右側,Obx=Oax+Lx
后側,Oby=Oay-Ly
前側,Oby=Oay+Ly
4.2 碰撞檢測
因為室內設計的特點,幾乎所有的物體都是靜態(tài)的,所以都可以視為是場景的一部分AABB間的動態(tài)檢測稍微復雜一些??紤]一個由極值點smin和smax定義的靜止AAB和一個由mmin和mmax定義的運動AABB。運動AABB的運動由向量d給出,t從0變化到1。
將三維的問題轉換成為獨立的一維的問題,再把它們組合在一起就得到最終答案。
黑色矩形代表沿數(shù)軸滑動的運動AABB。當t=0時,運動AABB完全位于靜止AABB的左側,當t=1,是運動AABB完全無語靜止AABB的右邊。tenter是兩個AABB開始相交的時刻,tleave是兩個AABB脫離的接觸時刻。對于正在討論的維,設mmin(t)和mmax(t)代表運動AABB在時刻t的最小值和最大值。
mmin(0)和mmax(0)是運動AABB的起始位置,d是位移向量在d在這個維上的分量。類似地用smin和smax來定義靜止AABB。tenter就是當mmax(t)等于smin時的t值。
求出tleave和tenter。在這段時間內兩個AABB會在某一維上相交,而所有維上的時間區(qū)間的交集就是兩個邊界框相交的時間段。如果區(qū)間為空,那么兩個AABB永遠不會相交;如果區(qū)間在[0,1]之外,那么在所討論的時間段內他們不相交。實際上這個時間區(qū)間給出的信息比我們想要的還多,因為我們只需要知道它們開始相交的時間點,而不需要知道結束相交的點。
4.3 射線碰撞檢測
這是一種最為常用的碰撞檢測,主要用于選擇已實例化的對象。在這個系統(tǒng)中起到了至關重要的作用,例如對墻體、家具的選擇。
主要通過鼠標點擊屏幕,系統(tǒng)已屏幕上的點發(fā)出一條射線,選中這條射線所碰撞到的第一個物體,實現(xiàn)了點擊屏幕選擇對象的功能。
具體實現(xiàn)方法為,先創(chuàng)建射線對象,并實時監(jiān)測鼠標是否發(fā)生點擊動作,鼠標發(fā)生點擊動作是對射線對象賦值,射線的起點為鼠標點擊的位置,并以屏幕投影的角度創(chuàng)建射線,如圖2所示,并檢測射線是否被物體所遮擋(碰撞檢測),如圖3所示,如果發(fā)生,就返回這個遮擋的物體,也就是我們要選擇的物體,并進行想要的操作。
5 結論(Conclusion)
這種設計可以直觀的體驗室內設計作品,讓體驗者可以直接在“設計并改裝后”的房屋中進行實際的體驗,相較于用平面展示的傳統(tǒng)室內設計提高了用戶的滿意度,減少了返工的幾率,并減少了不必要的資源浪費。并且在其他的領域中也可以應用,如大型商場內的設計、房地產開發(fā)、園區(qū)環(huán)境設計。
參考文獻(References)
[1] R Leeb,et al.Thinking Penguin:Multimodal Brain Computer Interface Control of a VR Game[J].IEEE Transactions on Computational Intelligence & Ai in Games,2013,5(2):117-128.
[2] AV Dam,et al.Immersive VR for Scientific Visualization:A Progress Report[J].Computer Graphics & Applications IEEE,2000,20(6):26-52.
[3] AJ Yeh,RA Nason.VRMath:A 3D Microworld for Learning 3D Geometry[J].Virtual Reality,2004(1):21-26.
[4] Fletcher Dunn,Ian Parberrry.3D數(shù)學基礎:圖形與游戲開發(fā)[M].北京:清華大學出版社,2016.
[5] 何偉.Unity虛擬現(xiàn)實開發(fā)盛典[M].北京:人民郵電出版社,2016.
[6] 郭浩瑜.Unity 3D ShaderLab開發(fā)實戰(zhàn)詳解[M].北京:中國鐵道出版社,2016.
作者簡介:
祁長興(1973-),男,碩士,副教授.研究領域:軟件工程與應用,神經網絡與智能控制.
劉峻杭(1994-),男,本科生.研究領域:軟件工程與應用.