郭巾銘 陳一民 黃 晨
(上海大學(xué)計(jì)算機(jī)工程與科學(xué)學(xué)院 上海 200444)
?
基于移動(dòng)增強(qiáng)現(xiàn)實(shí)的實(shí)時(shí)軟陰影繪制算法
郭巾銘陳一民黃晨
(上海大學(xué)計(jì)算機(jī)工程與科學(xué)學(xué)院上海 200444)
由于移動(dòng)設(shè)備的計(jì)算能力和存儲(chǔ)空間有限,基于移動(dòng)終端的光照估計(jì)和實(shí)時(shí)軟陰影繪制技術(shù)和研究很少,提出一種適用于移動(dòng)增強(qiáng)現(xiàn)實(shí)的實(shí)時(shí)軟陰影繪制算法。根據(jù)移動(dòng)終端光線傳感器的數(shù)值來(lái)計(jì)算光源的方向,得到模擬的點(diǎn)光源,在該點(diǎn)光源附近均勻采樣得到多個(gè)虛擬光源,疊加每個(gè)虛擬光源產(chǎn)生的陰影效果,實(shí)時(shí)繪制出軟陰影。實(shí)驗(yàn)結(jié)果表明,在保證移動(dòng)終端良好的虛實(shí)融合效果的情況下,采用該算法具有良好的實(shí)時(shí)性,為移動(dòng)終端軟陰影的繪制提供了有效的解決方法。
軟陰影光照估計(jì)移動(dòng)增強(qiáng)現(xiàn)實(shí)
傳統(tǒng)的增強(qiáng)現(xiàn)實(shí)研究多集中在PC端,發(fā)展較為成熟。隨著移動(dòng)設(shè)備的迅速崛起,PC端應(yīng)用成本高、外設(shè)復(fù)雜、攜帶不便等缺點(diǎn)越來(lái)越突出,而快速發(fā)展的移動(dòng)設(shè)備憑借便攜性和不斷提高的計(jì)算能力成為新一代增強(qiáng)現(xiàn)實(shí)應(yīng)用的研發(fā)平臺(tái)。智能手機(jī)中內(nèi)置的多種傳感器為移動(dòng)增強(qiáng)現(xiàn)實(shí)[1]的發(fā)展提供了新思路,對(duì)移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)的發(fā)展具有現(xiàn)實(shí)意義。在增強(qiáng)現(xiàn)實(shí)系統(tǒng)中,為了實(shí)現(xiàn)虛與實(shí)的無(wú)縫對(duì)接,提高虛擬物體的真實(shí)存在感,不僅需要實(shí)時(shí)的跟蹤和精確的注冊(cè)[2,3],還需要在虛擬物體上模擬真實(shí)場(chǎng)景的光照分布并繪制其陰影,否則用戶很容易察覺虛實(shí)場(chǎng)景的不一致性,破壞沉浸感。傳統(tǒng)的陰影繪制算法[4]主要集中在PC端,常用的有Franklin C. Crow 提出的Shadow Volumes[5]和Lance Williams提出的Shadow Maps[6]以及這些算法的變種,如Depth Shadow Maps[7],Perspective Shadow Maps[8]等。這些算法或因算法復(fù)雜度高,或因依賴專業(yè)設(shè)備,在移動(dòng)終端都不能直接使用。
針對(duì)上述問(wèn)題,本文提出一種適用于移動(dòng)增強(qiáng)現(xiàn)實(shí)的實(shí)時(shí)軟陰影繪制算法,使用基于標(biāo)記的NyARToolKit完成虛擬物體的注冊(cè),在初始化過(guò)程中調(diào)整手機(jī)的位置,通過(guò)讀取光線傳感器的數(shù)值來(lái)完成光源方向的計(jì)算并渲染虛擬物體的陰影。該算法避免了龐大外圍設(shè)備和復(fù)雜的數(shù)學(xué)計(jì)算,充分利用移動(dòng)終端傳感器的優(yōu)勢(shì)來(lái)估計(jì)場(chǎng)景中光源的方向并進(jìn)行軟陰影的繪制,不僅操作簡(jiǎn)便,實(shí)時(shí)性高,而且取得了很好的虛實(shí)融合效果。
傳統(tǒng)的光照估計(jì)方法大致分為三種:一種是基于物理的光照估計(jì),根據(jù)圖像中的一些特殊信息如陰影、明暗等建立基于物理的表達(dá)式從中求解光源的方向或強(qiáng)度;第二種是基于圖像求解,在添加虛擬物體的位置放置一個(gè)鏡面球,通過(guò)多張曝光不同的圖像合成環(huán)境映照來(lái)實(shí)現(xiàn);第三種是根據(jù)輸入圖像的明暗信息來(lái)求解光照分布。這些方法或需場(chǎng)景先驗(yàn)知識(shí),或依賴外設(shè),或計(jì)算復(fù)雜,在移動(dòng)終端都不合適。硬件方面,與PC端相比,計(jì)算能力薄弱是移動(dòng)終端的一大劣勢(shì),PC端所用的方法無(wú)法直接移植到移動(dòng)終端。另一方面,移動(dòng)終端除了具有便攜性的優(yōu)勢(shì)之外,功能強(qiáng)大又小巧的傳感器更是一大亮點(diǎn),為數(shù)據(jù)的獲取提供了新的選擇。實(shí)驗(yàn)中用到的光線傳感器主要用來(lái)檢測(cè)手機(jī)周邊的光照強(qiáng)度,讀數(shù)單位為lux,光線傳感器的數(shù)據(jù)稍作處理即可直接使用。另外,根據(jù)攝像頭捕獲的標(biāo)記,通過(guò)計(jì)算可以得到攝像頭相對(duì)于標(biāo)記的旋轉(zhuǎn)平移矩陣,由于光線傳感器的位置和攝像頭基本重疊,可以近似認(rèn)為該矩陣也是光線傳感器相對(duì)于標(biāo)記的旋轉(zhuǎn)平移矩陣。
(1)
2.1陰影介紹
通常的虛擬物體注冊(cè)到真實(shí)場(chǎng)景中會(huì)有懸浮感,是因?yàn)闆](méi)有考慮虛擬物體在真實(shí)場(chǎng)景的光照情況下應(yīng)產(chǎn)生的陰影和表面的明暗分布。為實(shí)現(xiàn)無(wú)縫融合,提高用戶的沉浸感,陰影的繪制是必不可少的。
陰影的產(chǎn)生離不開光源,物體表面陰影的形成是因?yàn)楸黄渌矬w所遮擋,接受光照不均勻造成的。理想情況下的光源有兩種,一種是點(diǎn)光源,一種是光源位于無(wú)窮遠(yuǎn)處(即平行光),那么從空間中的任意一點(diǎn)來(lái)看,都只會(huì)有光線照射的到和照射不到兩種極端情況。在現(xiàn)實(shí)生活中,點(diǎn)光源是不存在的,存在的是面光源、線光源和體光源。這些光源的照射下,某些位置只有部分光線能照射到,如圖1中的A點(diǎn)。理想情況下生成的陰影因?yàn)殛幱皡^(qū)和非陰影區(qū)有著明確的界限,陰影邊緣鋒利,稱之為硬陰影;現(xiàn)實(shí)環(huán)境中二者沒(méi)有明確的界限,陰影邊緣柔和,稱之為軟陰影。如圖1是陰影的生成效果示意圖。
圖1 陰影的生成效果示意圖
2.2硬陰影的繪制
對(duì)于硬陰影來(lái)說(shuō),所有的點(diǎn)只有在陰影區(qū)和不在陰影區(qū)的分別,所以以光源位置為起點(diǎn),向虛擬物體上的每一個(gè)點(diǎn)做射線,與地面的交界點(diǎn)組成了陰影所在區(qū)域。
圖2 陰影繪制示意圖
令N = (A, B, C, D),有:
=[k′(P-L)+L]·N
=[k′P+(1-k′)L]·N
(2)
由此解得S的四維向量坐標(biāo)S=HP,其中P為空間某點(diǎn)的向量坐標(biāo),H即為平面陰影投射矩陣,如式(3),從而在H的變換下,圖形將被“壓扁”地繪制到陰影投射平面上,也就形成了所謂的硬陰影。
(3)
在OpenGL中,使用4×4的空間-平面坐標(biāo)變換矩陣R將三維坐標(biāo)映射為屏幕實(shí)際顯示出來(lái)的二維坐標(biāo)。設(shè)S0是點(diǎn)S的屏幕坐標(biāo),則S0=RS=RHP=R′P,其中R′=RH,轉(zhuǎn)換后屏幕上就顯示出了正確的硬陰影。
2.3軟陰影的繪制
軟陰影是由面光源或者線光源、體光源生成的,而它們可以等效于無(wú)數(shù)個(gè)點(diǎn)光源組合形成,對(duì)軟陰影的模擬可以通過(guò)采樣多個(gè)點(diǎn)光源來(lái)實(shí)現(xiàn)。通過(guò)疊加多個(gè)點(diǎn)光源產(chǎn)生的陰影來(lái)模擬實(shí)際光源產(chǎn)生的陰影效果,不僅降低了問(wèn)題的復(fù)雜度,而且可以通過(guò)控制點(diǎn)光源的數(shù)量來(lái)調(diào)節(jié)速度與質(zhì)量之間的平衡。
為了有效繪制軟陰影,在上文估計(jì)的等效光源L(x,y,z)的附近均勻采樣出n個(gè)虛擬點(diǎn)光源,第i個(gè)點(diǎn)光源的位置為L(zhǎng)(xi,yi,zi),使用以下函數(shù)來(lái)確定虛擬點(diǎn)光源的強(qiáng)度,即:
(4)
圖3 實(shí)時(shí)軟陰影繪制算法流程
2.4實(shí)驗(yàn)效果
(1) 軟陰影繪制
實(shí)驗(yàn)中使用的NyARToolKit for Android是由日本的Android users group開發(fā)的,由ARToolKit衍生而來(lái)的可視AR類庫(kù),用戶可以方便地在Android上開發(fā)增強(qiáng)現(xiàn)實(shí)應(yīng)用,體積小巧,具有較快的執(zhí)行速度。實(shí)驗(yàn)在Eclipse平臺(tái)下完成開發(fā),使用手機(jī)SAMSUNG GT-I9082,搭載4.1.2 Android版本。實(shí)驗(yàn)開始后晃動(dòng)手機(jī),理想情況下將手機(jī)大范圍旋轉(zhuǎn),獲取周圍每一個(gè)點(diǎn)的光照強(qiáng)度,其中光照強(qiáng)度最大的方向就是當(dāng)前光源的方向。假定光源位于手機(jī)上方一定高度處,就可以得到一個(gè)等效的點(diǎn)光源。為了模擬真實(shí)場(chǎng)景,在該點(diǎn)光源附近一定范圍內(nèi)均勻采樣并繪制陰影,通過(guò)調(diào)整每個(gè)點(diǎn)光源產(chǎn)生的陰影的顏色和透明度,最終實(shí)現(xiàn)軟陰影的繪制,實(shí)驗(yàn)效果如圖4所示。
圖4 實(shí)驗(yàn)效果圖
(2) 算法實(shí)時(shí)性驗(yàn)證
為了帶給用戶沉浸式虛實(shí)交錯(cuò)的體驗(yàn),實(shí)時(shí)性在增強(qiáng)現(xiàn)實(shí)中顯得尤為重要。為了驗(yàn)證本文算法是否能夠滿足實(shí)時(shí)性的需要,實(shí)驗(yàn)采用繪制虛擬物體和陰影及僅繪制虛擬物體兩種情況下每次繪制場(chǎng)景所需的時(shí)間長(zhǎng)度進(jìn)行對(duì)比。具體方法如下:在程序開始執(zhí)行后,每一幀畫面都要通過(guò)OnDrawFrame函數(shù)渲染場(chǎng)景并繪制虛擬物體及其陰影,所以選擇程序中每次OnDrawFrame函數(shù)中繪制部分的執(zhí)行時(shí)間長(zhǎng)度作為具體的衡量標(biāo)準(zhǔn)。
圖5是其中兩次實(shí)驗(yàn)中的20幀數(shù)據(jù),橫坐標(biāo)表示幀號(hào),縱坐標(biāo)表示繪制時(shí)間,單位為ms。從圖中可以看出繪制陰影后陰影繪制的時(shí)間略高于僅繪制虛擬物體的時(shí)間。圖6列出了九次實(shí)驗(yàn)中,每次實(shí)驗(yàn)OnDrawFrame執(zhí)行的平均時(shí)間的對(duì)比,每次實(shí)驗(yàn)均選取前1400幀圖像統(tǒng)計(jì)。橫坐標(biāo)表示實(shí)驗(yàn)編號(hào),縱坐標(biāo)表示平均繪制時(shí)間,單位為ms。通過(guò)對(duì)九次實(shí)驗(yàn)的數(shù)據(jù)統(tǒng)計(jì),僅繪制虛擬物體時(shí)OnDrawFrame的執(zhí)行時(shí)間平均約為1.01 ms,繪制陰影后OnDrawFrame的執(zhí)行時(shí)間平均約為1.34 ms。經(jīng)測(cè)算,原程序中大約每秒能繪制27~30幀圖像,即每幀圖像的繪制時(shí)間在33~37 ms之間,陰影的渲染時(shí)間只增加了不到10%的時(shí)間,所以對(duì)程序的實(shí)時(shí)性沒(méi)有明顯的影響,可以完全滿足移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)對(duì)實(shí)時(shí)性的要求。
圖5 20幀圖像平均繪制時(shí)間對(duì)比
圖6 十次實(shí)驗(yàn)平均繪制時(shí)間對(duì)比圖
本文提出了一種高效的軟陰影繪制算法,該算法充分發(fā)揮了移動(dòng)終端傳感器的優(yōu)勢(shì),避免了復(fù)雜的計(jì)算,提高了系統(tǒng)的實(shí)時(shí)性。實(shí)驗(yàn)表明,本文所提出的算法對(duì)移動(dòng)終端軟陰影的繪制有很好的實(shí)驗(yàn)效果,虛實(shí)融合效果真實(shí)自然,并且具有良好的實(shí)時(shí)性。但本文的算法只適用于場(chǎng)景中只有一個(gè)光源的情況,未來(lái)的工作主要集中在多光源的識(shí)別方面。
[1] 李丹,程耕國(guó).基于Android平臺(tái)的移動(dòng)增強(qiáng)現(xiàn)實(shí)的應(yīng)用與研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015(1):16-19,23.
[2] 范利君,童小念.移動(dòng)增強(qiáng)現(xiàn)實(shí)中視覺三維注冊(cè)方法的實(shí)現(xiàn)[J].數(shù)字工程,2011,39(12):138-140.
[3] Wagner D,Reitmayr G,Mulloni A,et al.Real-time Detection and Tracking for Augmented Reality on Mobile Phones[J].IEEE Transactions on Visualization and Computer Graphics,2010,16(3):355-368.
[4] 李紅波,吳亮亮,吳渝.自適應(yīng)采樣與融合的增強(qiáng)現(xiàn)實(shí)陰影生成算法[J].計(jì)算機(jī)應(yīng)用,2012,32(7):1860-1863.[5] Crow,Franklin C.Shadow algorithms for computer graphic[J].ACM Siggraph Computer Graphics,1977,11(2):242-248.
[6] Williams,Lance.Casting curved shadows on curved surfaces[J].ACM Siggraph Computer Graphics,1978,12(3):270-274.
[7] Weiskopf D,Ertl T.Shadow mapping based on dual depth layers[C]//Proceedings of Eurographics,2003,3:53-60.
[8] Stamminger M,Drettakis G.Perspective shadow maps[J].TOG:ACM Transactions on Graphics,2002,21(3):557-562.
[9] Jung Y,Kim T,Oh J,et al.Mobile AR Rendering Method using Environmental Light Source Information[C]//ICISA:International Conference on Information Science and Applications,2013:1-3.
ALGORITHM OF REAL-TIME SOFT SHADOW RENDERING BASED ON MOBILE AUGMENTED REALITY
Guo JinmingChen YiminHuang Chen
(School of Computer Engineering and Science,Shanghai University,Shanghai 200444,China)
Constrained by computing capability and storage space of mobile devices, the mobile terminal-based illumination estimation and real-time soft shadow rendering techniques and studies are quite few. We proposed a real-time soft shadow rendering algorithm applicable for mobile augmented reality. First it calculates the directions of light source according to the illumination intensity value of light sensor at mobile terminal and obtains the simulated point light source. Secondly, it makes uniform sampling around the point light source to get a couple of virtual light sources. At last, it overlays the shadow effects from every virtual light source and obtains the soft shadow in real-time rendering result. Experimental result showed that under the condition of ensuring good blending effect of virtuality and reality at mobile terminal, the use of the proposed algorithm has good real-time property, this provides the effective solution for soft shadow rendering of mobile terminals.
Soft shadowIllumination estimationMobile augmented reality
2015-05-26。郭巾銘,碩士生,主研領(lǐng)域:計(jì)算機(jī)圖形圖像,增強(qiáng)現(xiàn)實(shí)。陳一民,教授。黃晨,博士生。
TP391.41
A
10.3969/j.issn.1000-386x.2016.09.050