郭巾銘 陳一民 黃 晨
(上海大學計算機工程與科學學院 上海 200444)
?
基于移動增強現實的實時軟陰影繪制算法
郭巾銘陳一民黃晨
(上海大學計算機工程與科學學院上海 200444)
由于移動設備的計算能力和存儲空間有限,基于移動終端的光照估計和實時軟陰影繪制技術和研究很少,提出一種適用于移動增強現實的實時軟陰影繪制算法。根據移動終端光線傳感器的數值來計算光源的方向,得到模擬的點光源,在該點光源附近均勻采樣得到多個虛擬光源,疊加每個虛擬光源產生的陰影效果,實時繪制出軟陰影。實驗結果表明,在保證移動終端良好的虛實融合效果的情況下,采用該算法具有良好的實時性,為移動終端軟陰影的繪制提供了有效的解決方法。
軟陰影光照估計移動增強現實
傳統的增強現實研究多集中在PC端,發展較為成熟。隨著移動設備的迅速崛起,PC端應用成本高、外設復雜、攜帶不便等缺點越來越突出,而快速發展的移動設備憑借便攜性和不斷提高的計算能力成為新一代增強現實應用的研發平臺。智能手機中內置的多種傳感器為移動增強現實[1]的發展提供了新思路,對移動增強現實技術的發展具有現實意義。在增強現實系統中,為了實現虛與實的無縫對接,提高虛擬物體的真實存在感,不僅需要實時的跟蹤和精確的注冊[2,3],還需要在虛擬物體上模擬真實場景的光照分布并繪制其陰影,否則用戶很容易察覺虛實場景的不一致性,破壞沉浸感。傳統的陰影繪制算法[4]主要集中在PC端,常用的有Franklin C. Crow 提出的Shadow Volumes[5]和Lance Williams提出的Shadow Maps[6]以及這些算法的變種,如Depth Shadow Maps[7],Perspective Shadow Maps[8]等。這些算法或因算法復雜度高,或因依賴專業設備,在移動終端都不能直接使用。
針對上述問題,本文提出一種適用于移動增強現實的實時軟陰影繪制算法,使用基于標記的NyARToolKit完成虛擬物體的注冊,在初始化過程中調整手機的位置,通過讀取光線傳感器的數值來完成光源方向的計算并渲染虛擬物體的陰影。該算法避免了龐大外圍設備和復雜的數學計算,充分利用移動終端傳感器的優勢來估計場景中光源的方向并進行軟陰影的繪制,不僅操作簡便,實時性高,而且取得了很好的虛實融合效果。
傳統的光照估計方法大致分為三種:一種是基于物理的光照估計,根據圖像中的一些特殊信息如陰影、明暗等建立基于物理的表達式從中求解光源的方向或強度;第二種是基于圖像求解,在添加虛擬物體的位置放置一個鏡面球,通過多張曝光不同的圖像合成環境映照來實現;第三種是根據輸入圖像的明暗信息來求解光照分布。這些方法或需場景先驗知識,或依賴外設,或計算復雜,在移動終端都不合適。硬件方面,與PC端相比,計算能力薄弱是移動終端的一大劣勢,PC端所用的方法無法直接移植到移動終端。另一方面,移動終端除了具有便攜性的優勢之外,功能強大又小巧的傳感器更是一大亮點,為數據的獲取提供了新的選擇。實驗中用到的光線傳感器主要用來檢測手機周邊的光照強度,讀數單位為lux,光線傳感器的數據稍作處理即可直接使用。另外,根據攝像頭捕獲的標記,通過計算可以得到攝像頭相對于標記的旋轉平移矩陣,由于光線傳感器的位置和攝像頭基本重疊,可以近似認為該矩陣也是光線傳感器相對于標記的旋轉平移矩陣。

(1)
2.1陰影介紹
通常的虛擬物體注冊到真實場景中會有懸浮感,是因為沒有考慮虛擬物體在真實場景的光照情況下應產生的陰影和表面的明暗分布。為實現無縫融合,提高用戶的沉浸感,陰影的繪制是必不可少的。
陰影的產生離不開光源,物體表面陰影的形成是因為被其它物體所遮擋,接受光照不均勻造成的。理想情況下的光源有兩種,一種是點光源,一種是光源位于無窮遠處(即平行光),那么從空間中的任意一點來看,都只會有光線照射的到和照射不到兩種極端情況。在現實生活中,點光源是不存在的,存在的是面光源、線光源和體光源。這些光源的照射下,某些位置只有部分光線能照射到,如圖1中的A點。理想情況下生成的陰影因為陰影區和非陰影區有著明確的界限,陰影邊緣鋒利,稱之為硬陰影;現實環境中二者沒有明確的界限,陰影邊緣柔和,稱之為軟陰影。如圖1是陰影的生成效果示意圖。

圖1 陰影的生成效果示意圖
2.2硬陰影的繪制
對于硬陰影來說,所有的點只有在陰影區和不在陰影區的分別,所以以光源位置為起點,向虛擬物體上的每一個點做射線,與地面的交界點組成了陰影所在區域。


圖2 陰影繪制示意圖
令N = (A, B, C, D),有:
=[k′(P-L)+L]·N
=[k′P+(1-k′)L]·N
(2)
由此解得S的四維向量坐標S=HP,其中P為空間某點的向量坐標,H即為平面陰影投射矩陣,如式(3),從而在H的變換下,圖形將被“壓扁”地繪制到陰影投射平面上,也就形成了所謂的硬陰影。
(3)
在OpenGL中,使用4×4的空間-平面坐標變換矩陣R將三維坐標映射為屏幕實際顯示出來的二維坐標。設S0是點S的屏幕坐標,則S0=RS=RHP=R′P,其中R′=RH,轉換后屏幕上就顯示出了正確的硬陰影。
2.3軟陰影的繪制
軟陰影是由面光源或者線光源、體光源生成的,而它們可以等效于無數個點光源組合形成,對軟陰影的模擬可以通過采樣多個點光源來實現。通過疊加多個點光源產生的陰影來模擬實際光源產生的陰影效果,不僅降低了問題的復雜度,而且可以通過控制點光源的數量來調節速度與質量之間的平衡。
為了有效繪制軟陰影,在上文估計的等效光源L(x,y,z)的附近均勻采樣出n個虛擬點光源,第i個點光源的位置為L(xi,yi,zi),使用以下函數來確定虛擬點光源的強度,即:

(4)


圖3 實時軟陰影繪制算法流程
2.4實驗效果
(1) 軟陰影繪制
實驗中使用的NyARToolKit for Android是由日本的Android users group開發的,由ARToolKit衍生而來的可視AR類庫,用戶可以方便地在Android上開發增強現實應用,體積小巧,具有較快的執行速度。實驗在Eclipse平臺下完成開發,使用手機SAMSUNG GT-I9082,搭載4.1.2 Android版本。實驗開始后晃動手機,理想情況下將手機大范圍旋轉,獲取周圍每一個點的光照強度,其中光照強度最大的方向就是當前光源的方向。假定光源位于手機上方一定高度處,就可以得到一個等效的點光源。為了模擬真實場景,在該點光源附近一定范圍內均勻采樣并繪制陰影,通過調整每個點光源產生的陰影的顏色和透明度,最終實現軟陰影的繪制,實驗效果如圖4所示。

圖4 實驗效果圖
(2) 算法實時性驗證
為了帶給用戶沉浸式虛實交錯的體驗,實時性在增強現實中顯得尤為重要。為了驗證本文算法是否能夠滿足實時性的需要,實驗采用繪制虛擬物體和陰影及僅繪制虛擬物體兩種情況下每次繪制場景所需的時間長度進行對比。具體方法如下:在程序開始執行后,每一幀畫面都要通過OnDrawFrame函數渲染場景并繪制虛擬物體及其陰影,所以選擇程序中每次OnDrawFrame函數中繪制部分的執行時間長度作為具體的衡量標準。
圖5是其中兩次實驗中的20幀數據,橫坐標表示幀號,縱坐標表示繪制時間,單位為ms。從圖中可以看出繪制陰影后陰影繪制的時間略高于僅繪制虛擬物體的時間。圖6列出了九次實驗中,每次實驗OnDrawFrame執行的平均時間的對比,每次實驗均選取前1400幀圖像統計。橫坐標表示實驗編號,縱坐標表示平均繪制時間,單位為ms。通過對九次實驗的數據統計,僅繪制虛擬物體時OnDrawFrame的執行時間平均約為1.01 ms,繪制陰影后OnDrawFrame的執行時間平均約為1.34 ms。經測算,原程序中大約每秒能繪制27~30幀圖像,即每幀圖像的繪制時間在33~37 ms之間,陰影的渲染時間只增加了不到10%的時間,所以對程序的實時性沒有明顯的影響,可以完全滿足移動增強現實系統對實時性的要求。

圖5 20幀圖像平均繪制時間對比

圖6 十次實驗平均繪制時間對比圖
本文提出了一種高效的軟陰影繪制算法,該算法充分發揮了移動終端傳感器的優勢,避免了復雜的計算,提高了系統的實時性。實驗表明,本文所提出的算法對移動終端軟陰影的繪制有很好的實驗效果,虛實融合效果真實自然,并且具有良好的實時性。但本文的算法只適用于場景中只有一個光源的情況,未來的工作主要集中在多光源的識別方面。
[1] 李丹,程耕國.基于Android平臺的移動增強現實的應用與研究[J].計算機應用與軟件,2015(1):16-19,23.
[2] 范利君,童小念.移動增強現實中視覺三維注冊方法的實現[J].數字工程,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] 李紅波,吳亮亮,吳渝.自適應采樣與融合的增強現實陰影生成算法[J].計算機應用,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。郭巾銘,碩士生,主研領域:計算機圖形圖像,增強現實。陳一民,教授。黃晨,博士生。
TP391.41
A
10.3969/j.issn.1000-386x.2016.09.050