魏先勇
(商丘職業(yè)技術(shù)學(xué)院,河南商丘476000)
室內(nèi)交互式場景漫游系統(tǒng)工程的設(shè)計與實現(xiàn)
魏先勇
(商丘職業(yè)技術(shù)學(xué)院,河南商丘476000)
室內(nèi)交互式場景漫游系統(tǒng)可以十分方便地完成人機交互過程,給人帶來一種身臨其境的感受。該系統(tǒng)由虛擬世界、VR軟件、輸入設(shè)備和輸出設(shè)備4部分構(gòu)成,分析了基礎(chǔ)環(huán)境及模型的建模過程和場景模型導(dǎo)入到場景數(shù)據(jù)庫的方法,探討了模型及場景的材質(zhì)、燈光、碰撞檢測、漫游、消影、投影的實現(xiàn)。
虛擬現(xiàn)實;場景漫游;Open Inventor;3ds Max
虛擬現(xiàn)實(Virtual Reality,簡稱VR)是通過計算機及周邊設(shè)備,結(jié)合人工智能技術(shù)、多傳感器技術(shù)、仿真技術(shù)等創(chuàng)建一個實時三維立體環(huán)境。在此環(huán)境中,虛擬設(shè)備可以模擬關(guān)于聽覺、視覺、觸覺等感官功能,客戶可以借助一些設(shè)備與虛擬設(shè)備等對象進(jìn)行交互,達(dá)到相互影響,形成和諧的人機環(huán)境,給人一種“身臨其境”的感受。基于虛擬現(xiàn)實技術(shù)的展示方式比單純的圖像加文字信息展示方式更加形象生動,且具有更明顯的交互感。因此,虛擬現(xiàn)實技術(shù)越來越受到大眾的關(guān)注。在大數(shù)據(jù)、云平臺、新媒體盛行的當(dāng)今,虛擬現(xiàn)實技術(shù)已廣泛應(yīng)用于城市規(guī)劃、建筑物設(shè)計、航空航天等眾多領(lǐng)域。在產(chǎn)品展示、室內(nèi)設(shè)計等方面,虛擬現(xiàn)實技術(shù)大有將效果圖、三維動畫取而代之的趨勢[1]。筆者應(yīng)用三維建模技術(shù)和Open Inventor技術(shù)設(shè)計了一個室內(nèi)交互式場景的漫游。
一般來說,一個完整的虛擬現(xiàn)實系統(tǒng)由虛擬世界、VR軟件、輸入設(shè)備和輸出設(shè)備4部分構(gòu)成[2]。
1.1 虛擬世界
可以相互交互的虛擬環(huán)境構(gòu)成虛擬世界。在虛擬世界中,能夠?qū)崿F(xiàn)無死角連續(xù)考察和觀看的效果。通常情況下,虛擬世界包含三維模型和虛擬環(huán)境數(shù)據(jù)庫。
1.2 VR軟件
在虛擬環(huán)境中,景和物通過VR軟件實現(xiàn)。VR軟件是被廣泛應(yīng)用于虛擬現(xiàn)實制作和虛擬現(xiàn)實系統(tǒng)開發(fā)的一種圖形圖像三維處理軟件。常見的VR軟件分為建模軟件(3ds Max、VRML、Maya、AutoCAD等)和虛擬現(xiàn)實軟件(Open Inventor、Open GL、Coin 3D、Vtree、Vega等)。
1.3 輸入和輸出設(shè)備
收集的用戶信息由虛擬現(xiàn)實系統(tǒng)的輸入部分(數(shù)據(jù)手套、自由度鼠標(biāo)、三維球、生物傳感器、頭部跟蹤器、語音輸入設(shè)備)進(jìn)行接收,經(jīng)過處理后,經(jīng)由輸出設(shè)備使用戶體會到虛擬環(huán)境。該虛擬環(huán)境主要是由三維聲音效果、三維圖像視覺效果和觸覺效果共同實現(xiàn)的。
三維場景的創(chuàng)建是全過程的基礎(chǔ)和核心。本系統(tǒng)使用AutoCAD 2015和3ds Max 2015軟件來創(chuàng)建平面圖和三維場景,使用Vray 3.0軟件來完成模型材質(zhì)和燈光的設(shè)計。
2.1 平面圖的創(chuàng)建
在AutoCAD 2015中,首先建立場景圖紙區(qū)域,然后繪制場景平面圖,最后進(jìn)行尺寸或文字的標(biāo)注。建好的平面圖如圖1所示,將其保存為.dwg格式。
2.2 平面圖的導(dǎo)入
打開3ds Max 2015軟件,使用文件—導(dǎo)入命令將.dwg格式的平面圖導(dǎo)入3ds Max頂視圖中(如圖2所示)。
圖1 創(chuàng)建的場景平面圖Fig.1 Established scene p lan
圖2 平面圖導(dǎo)入3ds Max頂視圖的效果圖Fig.2 3ds M ax top view after leading p lan
2.3 三維場景的生成
(1)基本場景的生成。選中導(dǎo)入后的平面圖,使用“擠出”等命令生成三維室內(nèi)結(jié)構(gòu)場景,如圖3所示。
圖3 生成基本場景Fig.3 Created basic scene
(2)附屬物建模。附屬物主要包括窗框、玻璃、窗臺、落地窗、窗簾、門套、踢腳線等。其中,窗臺、窗簾、踢腳線、門套的制作較為復(fù)雜,涉及的修改器也較多,如:倒角、倒角剖面、放樣等。附屬物建模如圖4所示。
圖4 附屬物建模Fig.4 Appendant modeling
(3)室內(nèi)物體建模及場景布置。室內(nèi)物體主要包括電視、電視柜、背景墻、音響、吊燈、書柜、書本、花瓶、綠化植物、茶幾、沙發(fā)、地毯、筆筒等物體。這些模型的建立使用了較多的修改器,如:多邊形建模、布爾運算、車削、錐化、噪波等。場景模型創(chuàng)建完成后,按照預(yù)先設(shè)計進(jìn)行場景地布置,具體效果如圖5所示。
圖5 室內(nèi)物體建模及場景布置Fig.5 Indoor object modeling
(4)材質(zhì)及燈光設(shè)計。場景模型創(chuàng)建完成后,進(jìn)行模型材質(zhì)地編輯。根據(jù)模型的不同物理特性,賦予材質(zhì)。最后,通過VR渲染器設(shè)置燈光效果,放置攝像機調(diào)整視角,渲染出最終效果圖,如圖6所示。
2.4 場景模型的導(dǎo)入
圖6 最終效果圖Fig.6 Final effect picture
場景模型創(chuàng)建完成后,需要將整個三維場景導(dǎo)入Open Inventor的場景數(shù)據(jù)庫。Open Inventor的VRML文件接口功能可以把讀入的VRML文件轉(zhuǎn)化成Open Inventor場景,并形成節(jié)點。場景模型的導(dǎo)入步驟為:(1)利用3dsMax進(jìn)行基礎(chǔ)場景建模及材質(zhì)地設(shè)置,并輸出VRML格式的文件。(2)把輸出的VRML格式的文件轉(zhuǎn)化成擴展名為.iv的文件。(3)利用Open Inventor中的VRML接口讀取轉(zhuǎn)化過來的.iv文件,同時將它轉(zhuǎn)化為場景,并組成節(jié)點,從而建立了三維虛擬場景。
因為本漫游系統(tǒng)的開發(fā)是針對Windows平臺的用戶,所以使用Microsoft Visual C++作為漫游系統(tǒng)的開發(fā)環(huán)境。在Windows操作系統(tǒng)中,Open Inventor提供了對SoWin API封裝的Fortran語言的可視化編程環(huán)境(Intel Visual Fortan,簡稱IVF)類庫。因此,IVF應(yīng)用程序框架、IVF類庫和微軟基礎(chǔ)類庫(Microsotf Foundation Classes,簡稱MFC)的應(yīng)用程序框架、MFC類庫能夠很好地集成在一起,良好地支持三維立體圖形的顯示,也能很方便地在VC平臺上進(jìn)行程序開發(fā)[3]。
3.1 照相機和燈光的實現(xiàn)
在Open Inventor中,首先是燈光和照相機兩個類的調(diào)用。這是因為,燈光與照相機影響到3D圖像場景的外觀。虛擬現(xiàn)實環(huán)境和全真環(huán)境相似,也需要燈光照明,才能便于觀察到物體。如果一個虛擬場景中沒有任何燈光,同時把當(dāng)前的光照模型Phong lighting缺省,那么這個虛擬場景中的物體也都是處在黑暗的環(huán)境中,不能被看到。Inventor為虛擬場景提供多種光照類型的燈光。使用這些燈光,會使我們有在現(xiàn)實世界一樣的感覺。
人通過眼睛觀察現(xiàn)實世界不同的場景,Inventor也有一個具有人眼功能的照相機,這個照相機不但具有透視方式,而且有產(chǎn)生2D“快照”的功能。照相機節(jié)點可以對場景中所有位于它之后的節(jié)點“拍攝”一張照片。因為照相機必須位于想要觀察的物體之前。所以,通常要將照相機放在靠近場景最頂端的位置上。一個場景在同一時刻只能有一個激活的照相機。當(dāng)幾何坐標(biāo)變換時,將會影響照相機的空間位置。當(dāng)使用多個照相機時,可以使用切換(switch)節(jié)點來激活其中的某個照相機。
3.2 碰撞檢測以及漫游的實現(xiàn)[4]
Open Inventor的事件模型提供了一種簡單的機制。通過這些機制,我們可以通過“按一下鍵盤”和“移動鼠標(biāo)”等將事件傳遞給場景數(shù)據(jù)庫中的物體。
該場景漫游中的碰撞檢測就是在Open Inventor的事件模型基礎(chǔ)上實現(xiàn)的。它在程序中具體調(diào)用的類如下:
3.3 消影、投影的實現(xiàn)
物體屬性節(jié)點都是從SoNode派生的,包含So-Material、SoDrawStyle、SoLightModel、SoEnvironment、SoShapeHints、SoComplexity SoUnits屬性。
在程序中,是以頭文件的形式出現(xiàn)的,實現(xiàn)方法如下:
#include<Inventor/nodes/SoCone.h>
#include<Inventor/nodes/SoMaterial.h>。
3.4 最終整體場景
通過對整個過程的運營調(diào)試,實現(xiàn)了室內(nèi)交互式場景漫游的設(shè)計。該設(shè)計能夠讓參觀者得到身臨其境的神秘效果,如圖7所示。
圖7 場景漫游的整體效果Fig.7 W hole effect of virtual scene
場景漫游可以營造一個逼真的視覺虛擬環(huán)境。在虛擬環(huán)境中,物體和場景都形成了真實的或者假想的能夠讓人感到身臨其境的仿真虛擬空間。通過現(xiàn)有的虛擬設(shè)備,可以讓用戶實現(xiàn)在虛擬環(huán)境中進(jìn)行漫游,從而實現(xiàn)從不同的視點觀察場景中的對象,同時也能對物體進(jìn)行操作和規(guī)劃。因此,一個好的場景漫游的功能是非常強大的。本文設(shè)計的場景漫游系統(tǒng)基本實現(xiàn)了漫游的功能,通過鍵盤進(jìn)行控制,達(dá)到了視覺的變化。
[1]吳輝煌.基于UN ITY技術(shù)實現(xiàn)的三維虛擬校園平臺設(shè)計[J].科技創(chuàng)新,2015(28):57-59.
[2]曹丹丹,朱彩英,劉曉春.基于碰撞檢測的交互式三維場景漫游系統(tǒng)研究與實現(xiàn)[J].測繪通報,2014(2):97-100.
[3]劉科文.基于Vega-VP三維場景模擬的虛擬現(xiàn)實技術(shù)研究[D].西安:西安石油大學(xué),2013.
[4]張凱.沉浸式三維虛擬漫游技術(shù)研究[J].長春理工大學(xué)學(xué)報(自然科學(xué)版),2016(2):104-106.
[責(zé)任編輯 楊明慶]
TP391.9
B
10.13681/j.cnki.cn41-1282/tv.2016.03.015
2016-04-18
河南省教育廳科學(xué)技術(shù)研究重點項目:沉浸式虛擬漫游技術(shù)研究(14B520044)。
魏先勇(1979-),男,河南寧陵人,講師,碩士,從事計算機網(wǎng)絡(luò)安全、虛擬現(xiàn)實技術(shù)、智能計算等方面的教學(xué)與研究工作。