譚劍波, 張光劉, 李 琳
(1.華東電子工程研究所,安徽合肥 230031;2.合肥工業(yè)大學(xué)計算機(jī)與信息學(xué)院,安徽合肥 230009)
在詹姆斯?卡梅隆導(dǎo)演執(zhí)導(dǎo)的3D技術(shù)創(chuàng)造的《阿凡達(dá)》帶動下,相關(guān)產(chǎn)業(yè)發(fā)展迅速,各大顯示設(shè)備硬件生產(chǎn)商,如德州儀器、三星、LG、優(yōu)派等紛紛斥資研發(fā)新的 3D顯示設(shè)備。在此基礎(chǔ)上4D電影被提上日程,所謂4D電影是在3D立體電影的基礎(chǔ)上加環(huán)境特效、動感座椅及其它特效輔助設(shè)備,形成下雪、下雨、閃電、煙霧等特效設(shè)備,用來營造一種與影片內(nèi)容相一致的環(huán)境。隨著影片內(nèi)容的變化,觀眾可實(shí)時感受到下雨、振動、噴氣、噴霧、拍腿等身邊所發(fā)生與片中影像對應(yīng)的事件,從而實(shí)現(xiàn)驚險刺激、身臨其境的效果。4D電影也是一種用戶與電影場景交互的體現(xiàn),但限于設(shè)備的造價高,其應(yīng)用并不十分廣泛。
隨著3D技術(shù)的日益發(fā)展和對各個領(lǐng)域不斷的滲透,對立體顯示所能帶來的沉浸感和生動性的要求亟待提高;除了在視覺上給用戶逼真的沖擊之外,還可借助外圍設(shè)備讓用戶與三維場景進(jìn)行交互,為用戶帶來觸覺上的有趣性[1]。本文基于此設(shè)想在被動立體顯示環(huán)境中引入體感設(shè)備,并結(jié)合網(wǎng)球游戲?qū)嵗M(jìn)行分析。
19世紀(jì)30年代,英國物理學(xué)家查爾斯?惠斯通(Charles Wheatstone)開始研究人的視覺,并于1838年發(fā)明了立體鏡,此舉拉開了人類對三維立體顯示研究的帷幕。隨著計算機(jī)信息領(lǐng)域的發(fā)展及平板顯示器的出現(xiàn),三維立體顯示蓬勃發(fā)展。日本、韓國、歐美等國家從20世紀(jì)80年代開始了三維立體顯示的基礎(chǔ)研究,開發(fā)了各種技術(shù)和產(chǎn)品。國內(nèi)的三維立體顯示技術(shù)起步較晚,與國際先進(jìn)水平存在一定的差距,但也有不少高校、研究所和企業(yè)對立體顯示技術(shù)開展研究并取得了一些成果[2,3]。
立體視覺最根本性和最精細(xì)的線索及其神經(jīng)機(jī)制是視差[4],這個事實(shí)由文獻(xiàn)[5]把隨機(jī)點(diǎn)立體圖對RDS方法應(yīng)用于立體視覺心理物理學(xué)實(shí)驗(yàn)后得到證實(shí);文獻(xiàn)[6]發(fā)現(xiàn)的皮層雙眼性視差敏感神經(jīng)細(xì)胞提供了神經(jīng)生理學(xué)基礎(chǔ);文獻(xiàn)[7]對雙眼視差做了比較深入的研究,這也是目前大多數(shù)學(xué)者研究的方向;文獻(xiàn)[8]通過試驗(yàn)發(fā)現(xiàn),兩眼視差在判斷距離時是最重要的。
提起體感交互設(shè)備,不得不提到被譽(yù)為“電子娛樂界一年一度的奧林匹克盛會”的電子娛樂展(Electronic Entertainment Expo)。最近一次大會的最大看點(diǎn)便是3大游戲機(jī)巨頭的新體感設(shè)備發(fā)布:日本老牌游戲廠商任天堂最新發(fā)布的“裸眼3D”掌上游戲機(jī)3DS、索尼發(fā)布的體感游戲控制器“PlayStation M ove”以及微軟的 Xbox360 Slim。任天堂憑借W ii游戲主機(jī)的動作捕捉功能,力壓微軟Xbox360和索尼的PS3;擁有W ii游戲機(jī)的用戶對著電視機(jī),揮舞著手中的體感交互控制器,做著運(yùn)動或者健身,如打高爾夫、保齡球等,W ii的傳感器則捕捉用戶的動作,虛擬投射到電視畫面上。PS3以攝像頭拍攝圖像識別為基礎(chǔ),動作感應(yīng)仍需要手柄來進(jìn)行識別。除此之外,還有泰山在線的i-dong和速位公司的CyWee Z。
CyWee Z與老牌的W ii的手柄是左右手分持的造型不同,是由臺灣速位互動股份有限公司開發(fā)的一種全能體感控制器。該控制器采用變型設(shè)計,可工作于2種模式,如圖1所示。CyWee Z根據(jù)它的變型模式可工作于不同狀態(tài),處于圖1a狀態(tài)可作為射擊、賽車類游戲交互設(shè)備;工作在圖1b狀態(tài)可作為網(wǎng)球、高爾夫球等球類游戲的交互設(shè)備。
圖1 不同工作模式的CyWee Z
本游戲?qū)嵗腔诒粍恿Ⅲw設(shè)備所做的開發(fā),也是偏光鏡(polarization glasses)技術(shù),系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)
一個關(guān)鍵問題是如何設(shè)計一實(shí)例,既能在用戶面前展現(xiàn)立體視覺的沖擊又能讓其感受到交互的有趣性。由于用戶在投影與屏幕的空間所處的位置不同,觀察所獲得的立體效果也不同,因此為了更好地體現(xiàn)場景的立體效果,需要在實(shí)例場景中加入運(yùn)動的物體,那么其運(yùn)動軌跡的設(shè)計是另一關(guān)鍵問題。參數(shù)說明見表1所列,其形式化可描述為:
表1 參數(shù)說明
立體顯示技術(shù)按其是否為雙目視差工作原理可分為2大類:雙目視差和非雙目視差。雙目視差是指人的雙目之間存在一定的瞳距[9],因而在觀看物體時左眼和右眼所接收到的圖像略有差異。另外,還可根據(jù)立體顯示具體實(shí)現(xiàn)方式的不同,分為紅綠眼鏡(anag lyph)、偏光眼鏡(polarization glasses)、快門眼鏡(shutter glasses)、頭盔式顯示器(HMD)和自由立體顯示技術(shù)(autostereoscopic)等。
視差可分為水平視差和垂直視差,如圖3所示。距離b即是人們兩眼之間的距離,也就是人們所說的水平視差;左眼O1、右眼O2與觀察物體之間所形成的夾角α稱為視差角,當(dāng)被觀察的物體離視點(diǎn)越近,則視差角越大,兩眼所接收到的視覺圖像差別越大;反之則越小。
基于上述原理,根據(jù)投影面、人眼以及觀察對象之間的相對位置,可有零視差、水平正視差和水平負(fù)視差之分。水平正視差:如果左眼圖像L′位于銀幕的左邊,右眼圖像R′位于銀幕的右邊,則像A凹進(jìn)銀幕在銀幕后方成像。水平負(fù)視差:如果左眼圖像L′位于銀幕的右邊,右眼圖像R′位于銀幕的左邊,則像B凸起銀幕在銀幕的前方成像。水平正、負(fù)視差使人在視覺上產(chǎn)生了凹凸感和縱深感。
圖3 視差
由圖3可以看出,視差在立體顯示效果中扮演著非常重要的角色。設(shè)虛擬雙眼(投影機(jī))的距離為L,焦距為f,場景空間任意一點(diǎn)(x,y,z)的視差公式為:
其中,L與f為常量,視差的值由物體所在空間的位置來決定,因而用戶在不同的位置所觀察出的立體效果會有所不同。
根據(jù)以上關(guān)鍵問題的提出以及立體原理所涉及的問題,在場景設(shè)計時,將場景元素分為靜態(tài)元素與動態(tài)元素。靜態(tài)元素也就是在整個游戲中處于靜止?fàn)顟B(tài)的物體;動態(tài)元素就是運(yùn)動的物體。
本實(shí)例場景靜態(tài)元素由室內(nèi)房間構(gòu)成;動態(tài)元素由網(wǎng)球拍、網(wǎng)球構(gòu)成。
(1)網(wǎng)球的運(yùn)動軌跡設(shè)計?,F(xiàn)實(shí)生活中網(wǎng)球的運(yùn)動是加速運(yùn)動,其整個運(yùn)動軌跡呈拋物線,而且經(jīng)過用戶的球拍擊打,網(wǎng)球由其受力方向飛離運(yùn)動員,后最終受到地球引力的影響落到地面。為了仿真這個過程,選用向量工具來實(shí)現(xiàn),網(wǎng)球的整個運(yùn)動過程由速度、加速度向量來描述。由于在三維空間中,速度矢量為v(x,y,z),分量x的大小表示x軸上的速率,其符號表示 x軸上的運(yùn)動方向,y與z同理;加速度矢量為a(x,y,z),分量x的大小表示x軸上的加速度大小,其符號表示在x軸的加速度方向,y與z同理;因而網(wǎng)球的位置以及運(yùn)動方向可根據(jù)位移公式計算得到:
同時判斷用戶是否有揮動控制器的動作,如果有則根據(jù)揮動方向來改變其運(yùn)動軌跡,并旋轉(zhuǎn)球拍,讓用戶切身感受到交互的效果。
(2)網(wǎng)球與墻面的碰撞檢測。實(shí)現(xiàn)碰撞檢測將使用在光線跟蹤算法中使用的規(guī)則。一條通過矢量描述的光線,其計算公式為:
其中,t是一個浮點(diǎn)數(shù),取值為0~∞;矢量 p、s和n取值(x,y,z)。網(wǎng)球與墻面的碰撞檢測實(shí)際上就是光線與平面相交的檢測,一個平面可由以下的矢量來描述,即
其中,d是一個浮點(diǎn)數(shù),描述了從坐標(biāo)系的原點(diǎn)到法線平面的距離;?表示矢量的點(diǎn)乘;矢量Xn、X分別表示平面的法線和該平面上一點(diǎn)。
聯(lián)合(3)式、(4)式,求得:
如果t是負(fù)數(shù),說明光線和平面沒有交點(diǎn),否則表明有交點(diǎn)。
(3)碰撞響應(yīng)。為了計算對于一個靜止物體的碰撞,需要知道以下信息:碰撞點(diǎn)、碰撞法線及碰撞時間?;谝韵挛锢硪?guī)律,即碰撞的入射角等于反射角,反射向量的計算公式為:
其中,R為反射向量;I為入射向量;N為法線向量。
碰撞響應(yīng)如圖4所示。
圖4 碰撞響應(yīng)
(4)動作映射m ap(x1,x2)。把CyWee Z游戲控制器與實(shí)例場景中的網(wǎng)球拍關(guān)聯(lián)起來,將控制器動作映射到網(wǎng)球拍:用戶手持控制器的左揮動作與右揮動作相應(yīng)映射到球拍的動畫,讓用戶體會到自己在游戲中所扮演的角色。
通過調(diào)節(jié)物體的距離、焦距可以改變視差值,并將虛擬左右眼圖像通過OpenGL所提供的繪圖接口繪制到窗口中。
根據(jù)以上計算公式及原理,利用VC6.0開發(fā)工具和OpenGL提供的3D圖形接口實(shí)現(xiàn)實(shí)際算法,將程序移植到被動立體的設(shè)備。程序運(yùn)行效果如圖5所示,驗(yàn)證本文所提及立體效果的關(guān)聯(lián)因素((1)式)是否正確,發(fā)現(xiàn)當(dāng)用戶手持體感設(shè)備在銀幕與投影機(jī)之間改變位置,觀察出其網(wǎng)球運(yùn)動的立體效果不同,這一驗(yàn)證可為今后設(shè)計新的同類型游戲?qū)嵗峁┲笇?dǎo)方法[10-12]。
圖5 實(shí)際效果圖
本文分析了立體視覺的實(shí)現(xiàn)原理、立體顯示技術(shù)以及人機(jī)交互技術(shù),構(gòu)思出網(wǎng)球游戲?qū)?種技術(shù)結(jié)合,充分展現(xiàn)立體視覺的魅力以及交互技術(shù)的有趣性。將程序移植到設(shè)備上進(jìn)行測試,結(jié)果表明整體效果良好,與此同時也發(fā)現(xiàn),其立體效果根據(jù)不同的觀察位置、不同的觀察角度會有不同的立體效果;根據(jù)(2)式調(diào)整物體的距離也會影響到整體的立體效果。
進(jìn)一步的研究工作是豐富場景元素以及交互游戲規(guī)則,使得場景看起來更加美觀,用戶交互更加有趣。
本文初稿首次刊登于《計算機(jī)技術(shù)與應(yīng)用進(jìn)展?2010》
[1] 柳克俊.關(guān)于人機(jī)交互人機(jī)和諧環(huán)境的思考[J].計算機(jī)應(yīng)用,2005,25(10):2226-2227.
[2] 賈正根.立體顯示技術(shù)進(jìn)展[J].光電子技術(shù),2001,21(4): 267-271.
[3] 王瓊?cè)A,王愛紅.三維立體顯示綜述[J].計算機(jī)應(yīng)用,2010,30(3):579-581,588.
[4] 葛霽光.立體視覺深度認(rèn)知機(jī)理研究[J].科學(xué)技術(shù)與工程,2004,4(6):467-469.
[5] Julesz B.Stereoscopic vision[J].V ision Research,1986,26 (9):1601-1612.
[6] Bisbop P O,Pettig rew JD.Neu ralmechanism s of binocular vision[J].V ision Research,1986,26(9):1587-1600.
[7] Foley JM.Binocular distance perception[J].Psychological Review,1980,87(5):411-434.
[8] Ware C,F(xiàn)ranck G.Evaluating stereo and motion cues for visualizing information nets in three dim ensions[J].ACM Transactions on G raphics,1996,15(2):121-140.
[9] ˉOkoshi T.Three dimensional imaging techniques[M].New York:Academ ic Press,1976:103-303.
[10] NeH e.OpenGL教程[EB/OL].[2010-09-10].http://nehe.gam edev.net.
[11] Shreiner D,W oon M.OpenG L編程指南[M].第6版.北京:機(jī)械工業(yè)出版社,2006:228-273.
[12] 黃 忠,張佑生.基于約束四叉樹的真實(shí)感地形繪制[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,31(6):854-857.