秦楠
(西安外事學(xué)院 圖書(shū)館, 陜西 西安 710077)
虛擬交互技術(shù)是一種基于計(jì)算機(jī)理論和信息技術(shù)發(fā)展起來(lái)的技術(shù),能夠讓使用者具有沉浸式的體驗(yàn)感[1-5]。虛擬交互技術(shù)能夠?qū)?shù)字信息轉(zhuǎn)變?yōu)橐曈X(jué)、聽(tīng)覺(jué)、觸覺(jué)等多維度的信息表現(xiàn)形式,使用者通過(guò)該技術(shù)能夠?qū)崿F(xiàn)交互式的控制行為。用戶在利用虛擬交互技術(shù)進(jìn)行工作時(shí),能夠全方位地感受多維度的信息,通過(guò)沉浸式互動(dòng)行為獲取知識(shí),具有極大的主觀能動(dòng)性。
在圖書(shū)館管理和圖書(shū)借閱中,虛擬交互技術(shù)具有十分廣泛的應(yīng)用前景。虛擬交互技術(shù)是以人為中心,不僅能夠?qū)D書(shū)館的信息進(jìn)行分類組織,讓使用者一目了然地、快速地獲取自身所需要的信息;而且,還能基于使用者一種身臨其境的體驗(yàn)感,激發(fā)使用者的閱讀和學(xué)習(xí)欲望,對(duì)使用者的閱讀具有引導(dǎo)性。利用該技術(shù)能夠有效解決傳統(tǒng)圖書(shū)館管理過(guò)程中記錄繁多,效率低下等問(wèn)題[6-8]。本文設(shè)計(jì)了一種用于圖書(shū)館借閱系統(tǒng)的虛擬交互系統(tǒng)平臺(tái),對(duì)結(jié)構(gòu)、原理、建模、算法等關(guān)鍵技術(shù)進(jìn)行介紹。
基于虛擬交互模型的圖書(shū)館借閱系統(tǒng)平臺(tái)的整體架構(gòu)包括了控制單元、顯示單元、運(yùn)動(dòng)單元、客戶終端、運(yùn)動(dòng)控制器單元和伺服驅(qū)動(dòng)器單元。其中,控制單元為鼠標(biāo),通過(guò)USB與PC客戶終端相連接,操作者利用鼠標(biāo)控制虛擬人物在場(chǎng)景中視野、視角和運(yùn)動(dòng)交互;顯示單元為通用的PC顯示器,以HTML二維網(wǎng)頁(yè)視圖形式顯示;PC客戶終端對(duì)鼠標(biāo)的輸入信號(hào)進(jìn)行處理,一方面將信號(hào)傳輸至顯示器,經(jīng)解碼后以視圖形式顯示出來(lái);一方面向運(yùn)動(dòng)控制器輸出動(dòng)作信號(hào),運(yùn)動(dòng)控制器將動(dòng)作信號(hào)解碼并傳輸給伺服驅(qū)動(dòng)器,從而完成虛擬人物在相應(yīng)場(chǎng)景中的運(yùn)動(dòng)。
虛擬場(chǎng)景和運(yùn)動(dòng)平臺(tái)之間的映射關(guān)系是基于Stewart平臺(tái)的運(yùn)動(dòng)學(xué)反解模型建立起來(lái)的。如圖1所示。
圖1 Stewart平臺(tái)結(jié)構(gòu)
Stewart平臺(tái)具有上下兩個(gè)平臺(tái)。其中,上平臺(tái)的坐標(biāo)原點(diǎn)為P;相應(yīng)的動(dòng)坐標(biāo)系為P-xyz;P-x和P-y處于平臺(tái)平面,P-z軸垂直于平臺(tái)平面。下平臺(tái)的坐標(biāo)原點(diǎn)為O;相應(yīng)的動(dòng)坐標(biāo)系為O-xyz;O-x和O-y處于平臺(tái)平面,O-z垂直于平臺(tái)平面。
假設(shè)上平臺(tái)的廣義坐標(biāo)為a= [x,y,z,α,β,γ],其中x、y、z為動(dòng)坐標(biāo)系原點(diǎn)P在靜坐標(biāo)系中的坐標(biāo),α、β、γ為動(dòng)坐標(biāo)系相對(duì)靜坐標(biāo)系的歐拉角,那么旋轉(zhuǎn)矩陣則為式(1)。
(1)
若上平臺(tái)中各頂點(diǎn)Ai的坐標(biāo)為[xiP,yiP,ziP],下平臺(tái)中各頂點(diǎn)Bi的坐標(biāo)為[xiO,yiO,ziO],且i為1—6之間的整數(shù),那么第i軸的驅(qū)動(dòng)向量齊次坐標(biāo)則為式(2)。
(2)
由此可得,第i軸驅(qū)動(dòng)的長(zhǎng)度為式(3)。
(3)
另外,虛擬人物在場(chǎng)景中發(fā)生運(yùn)動(dòng)后,需要進(jìn)行復(fù)位,該系統(tǒng)采用洗出算法完成復(fù)位,洗出算法流程如圖2所示。
圖2 洗出算法流程框圖
該系統(tǒng)將鼠標(biāo)信號(hào)轉(zhuǎn)變?yōu)橄闯鲂盘?hào),將重力加速度g與線加速度a合成量比力f。然后將加速度中的高頻和低頻進(jìn)行分離,高頻部分經(jīng)二次積分后得到位置信息;低頻部分進(jìn)行傾斜協(xié)調(diào),得到角速度限幅;再與角速度的高頻部分二次積分結(jié)果進(jìn)行加和,得到相應(yīng)的姿態(tài)信息。該平臺(tái)通過(guò)在橫向和縱向兩個(gè)方向使用重力加速度的分向量,從而模擬了縱向加速度和橫向加速度,完成了虛擬角色的俯仰運(yùn)動(dòng)和橫滾運(yùn)動(dòng)。
本文以圖書(shū)室的虛擬場(chǎng)景建模為例進(jìn)行可視化建模的介紹。借閱室中的主要物品為書(shū)架、桌、椅。可視化模型建立是基于VRML語(yǔ)言建立的。其中,桌椅的可視化模型建立是通過(guò)碰撞測(cè)驗(yàn)進(jìn)行搭建的;碰撞測(cè)驗(yàn)主要是通過(guò)包圍盒法實(shí)現(xiàn)的,包圍盒采用自上而下的構(gòu)造方式,創(chuàng)造包圍盒根節(jié)點(diǎn),然后對(duì)模型進(jìn)行分割,分割為多個(gè)模塊,在采用遞歸調(diào)用的方法建立包圍盒樹(shù)。包圍盒算法的基本流程如圖3所示。
圖3 包圍盒算法的基本流程
首先獲取物體的幾何信息,然后將其轉(zhuǎn)換為包圍盒,依次執(zhí)行Sweep and Prune算法以及層次包圍盒相交算法;進(jìn)行包圍盒精確碰撞,確定碰撞與否。若進(jìn)行碰撞,則進(jìn)行碰撞物體運(yùn)動(dòng)控制;若不進(jìn)行碰撞,則對(duì)場(chǎng)景進(jìn)行建模,并創(chuàng)建場(chǎng)景,再進(jìn)行碰撞物體運(yùn)動(dòng)控制。
書(shū)架是采用紋理貼圖技術(shù)進(jìn)行虛擬場(chǎng)景搭建的??梢暬P蜆?gòu)建的主要過(guò)程包括:采集文理圖像進(jìn)行渲染、利用二維坐標(biāo)進(jìn)行紋理切割、基于VRML語(yǔ)言得到紋理映射圖像、最終于物體表面進(jìn)行紋理合成。其中利用Transform節(jié)點(diǎn)實(shí)現(xiàn)移動(dòng),Translation節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)化,Rotation節(jié)點(diǎn)實(shí)現(xiàn)旋轉(zhuǎn),Box節(jié)點(diǎn)實(shí)現(xiàn)尺寸定義,相應(yīng)VRML語(yǔ)言源代碼如下。
DEF shelf1 Transform{
Transition 0 2 1.4
Rotation 2 0 0 -0.5
Box 3.3 1.4 0.1}
DEF shelf2 Transform{
Transition 0 2 1.4
Rotation 2 0 0 -0.5
Box 3.3 1.4 0.1}
……
DEF shelfn Transform{
Transition 0 2 1.4
Rotation 2 0 0 -0.5
Box 3.3 1.4 0.1}
該圖書(shū)館借閱系統(tǒng)平臺(tái)的虛擬交互技術(shù)主要包括節(jié)約交互、管理交互和視覺(jué)交互三個(gè)部分。
其中,借閱交互功能主要體現(xiàn)在圖書(shū)的檢索功能方面。該借閱系統(tǒng)的檢索入口顯示形式為網(wǎng)頁(yè)形式,是基于VRML語(yǔ)言建立的。通過(guò)將Script節(jié)點(diǎn)導(dǎo)入到HTML文本中,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的處理。該系統(tǒng)所采用的搜索方法為人工智能算法,相似度計(jì)算如式(4)。
(4)
其中,Q1和Q2分別代表不同的句子;Ti和Tj代表的向量;wi和wj代表句子中關(guān)鍵詞的權(quán)值。利用上述算法計(jì)算相似度的過(guò)程是首先將句子Q1和Q2中的關(guān)鍵詞進(jìn)行加權(quán),權(quán)值分別為wi和wj,然后將權(quán)值引入到向量Ti和Tj空間。
管理交互功能主要涉及該系統(tǒng)平臺(tái)的運(yùn)行和維護(hù)。該功能也是通過(guò)VRML語(yǔ)言建立起來(lái)的。通過(guò)對(duì)Script節(jié)點(diǎn)進(jìn)行修改,然后調(diào)用相應(yīng)的Java程序。在管理交互功能中涉及到了圖書(shū)書(shū)名的重疊或是詞語(yǔ)具有歧義等情況,所以需要對(duì)數(shù)據(jù)管理進(jìn)行改進(jìn)。該系統(tǒng)算法中引入了詞性影響系數(shù)z的概念,當(dāng)z值為1時(shí),說(shuō)明兩個(gè)詞語(yǔ)的詞性和詞義都相同;當(dāng)z值為0.5時(shí),說(shuō)明兩個(gè)詞語(yǔ)詞義相同,但詞性不同。該系統(tǒng)詞語(yǔ)相似度計(jì)算方法如式(5)。
(5)
其中,Q1和Q2分別代表不同的詞語(yǔ);zi和zj分別代表該算法中的詞性影響系數(shù);wi和wj代表的是詞語(yǔ)中的權(quán)值。
該平臺(tái)視覺(jué)交互是通過(guò)插補(bǔ)器來(lái)實(shí)現(xiàn)的。其中人物坐標(biāo)是通過(guò)PositionInterpolator來(lái)定義的;視覺(jué)角度是利用ViewPoint來(lái)定義;視覺(jué)點(diǎn)是通過(guò)OrientationInterpolator定義的,且數(shù)目與插補(bǔ)器數(shù)目相同;人與虛擬場(chǎng)景的交互是通過(guò)傳感器ProximinitySensor實(shí)現(xiàn),數(shù)據(jù)的實(shí)時(shí)交互是通過(guò)時(shí)間傳感器TimeSensor實(shí)現(xiàn)。在進(jìn)行交互時(shí),首先TimeSensor通過(guò)fraction_changed算法向PositionInterpolator和OrientationInterpolator節(jié)點(diǎn)輸出數(shù)據(jù);然后在PositionInterpolator和OrientationInterpolator節(jié)點(diǎn)通過(guò)value_changed算法傳送給ViewPoint節(jié)點(diǎn),在ViewPoint節(jié)點(diǎn)中通過(guò)set_position和set_orientation來(lái)輸入事件,實(shí)現(xiàn)交互。
本文建立了一種基于虛擬交互模型的圖書(shū)館借閱系統(tǒng),并對(duì)其結(jié)構(gòu)和原理進(jìn)行了介紹。虛擬場(chǎng)景中的運(yùn)動(dòng)通過(guò)洗出算法實(shí)現(xiàn),虛擬場(chǎng)景建模采用包圍盒算法和紋理貼圖技術(shù)實(shí)現(xiàn)。該借閱平臺(tái)的借閱和管理交互均是基于VRML語(yǔ)言建立的,通過(guò)導(dǎo)入Script節(jié)點(diǎn)或修改Script節(jié)點(diǎn)調(diào)用Java程序,從而實(shí)現(xiàn)虛擬交互功能。