在增強(qiáng)現(xiàn)實(shí)中,光照效果很大程度上決定了一個(gè)虛擬物體能否很好的融入現(xiàn)實(shí)背景中,也就是我們一再提到的光照一致性問題。
ARKit和ARCore的初始版本都支持對環(huán)境光的基礎(chǔ)估計(jì),例如在ARCore SDK中就包含一個(gè)輕量級的光估計(jì),以便于更好地設(shè)置渲染對象,匹配真實(shí)場景。
例如在房間中放置一個(gè)虛擬無人機(jī),
如果我們將現(xiàn)實(shí)中的燈光改變,例如開關(guān)燈,渲染的無人機(jī)也會(huì)受到影響。發(fā)揮作用的ARCore / DiffuseWithLightEstimateion是基于Lambert照明模型的表面著色器,根據(jù)環(huán)境光光亮調(diào)整最終渲染圖形的調(diào)色。
這樣一來虛擬物體能夠更自然地融入環(huán)境,不至于太突兀,但是以往ARKit和ARCore在光照一致性方面能夠做到的還非常有限,只能大致估計(jì)環(huán)境光的方向、光亮等,而無法做到物體之間的互相映射、復(fù)雜光照環(huán)境下的光照渲染等。
為了讓AR對象更加逼真,Aoole在iOS 12的更新中增加了機(jī)器學(xué)習(xí)功能,將可以預(yù)測反射、光照等智能環(huán)境紋理。
每年iOS的更新都是非常具有話題性的,關(guān)于今年的WWDC大會(huì)上,iOS 12帶來了不少有趣的新功能,我們在ARKit 2.0 可以吐舌頭的AR表情中,有過大致的盤點(diǎn)。關(guān)于Memoji以及一些在文中詳細(xì)介紹的內(nèi)容我們就不再贅述,今天我們一起來具體看看ARKit 2.0是如何讓虛擬對象看起來更加真實(shí)的。
基于圖像的光照(Image Based Lighting)
“在3D渲染中,環(huán)境紋理是基于圖像的照明算法的基礎(chǔ),其表面可以逼真地反射周圍的光線。 ARKit可以在使用相機(jī)圖像AR的期間生成環(huán)境紋理,允許SceneKit或自定義渲染引擎為AR中的虛擬對象提供真實(shí)的基于圖像的照明”———Apple doc.
一個(gè)物體不會(huì)單獨(dú)的存在一個(gè)空無一物的環(huán)境中,它的周圍一般會(huì)有其他的物體,當(dāng)光源照射到其他物體的時(shí)候,一定也會(huì)存在反射,其中很多反射光就會(huì)照射到該物體上去。為了獲取空間中完整的光照情況,傳統(tǒng)的辦法是360°地采集光,費(fèi)時(shí)費(fèi)力?;趫D像的光照(IBL)顧名思義就是一種簡化的由果推因,從圖像反推環(huán)境光情況的技術(shù)。
多年之前的3D Studio Max就具備為不屬于真實(shí)場景的虛擬物體重新創(chuàng)建基于圖像光照的功能,使得虛擬物體與環(huán)境更加無縫銜接,虛擬物體具備了現(xiàn)實(shí)世界材料中存在的一些物理屬性。
而實(shí)時(shí)反射在AR中也不是一個(gè)全新的事物,在去年Vuforia和Unity就已經(jīng)完成,真正困難的是如何在移動(dòng)端較好的實(shí)現(xiàn)這些功能。
移動(dòng)端的使用中,設(shè)備本身計(jì)算能力受限,隨使用者而改變的環(huán)境又十分復(fù)雜,不可能完成360度全景的光照采集,ARKit采用機(jī)器學(xué)習(xí)的方式來構(gòu)建環(huán)境光照地圖中確實(shí)的部分。
補(bǔ)充一下關(guān)于PBR(基于物理的實(shí)時(shí)渲染)的概念。
顧名思義,PBR采用了一種更符合物理學(xué)規(guī)律的方式來模擬光線,通過模擬虛擬物體表面的粗糙程度,來計(jì)算出射該物體的光線呈現(xiàn)一個(gè)怎樣的方式,例如當(dāng)一個(gè)表面越是粗糙,微平面上的光線排列就會(huì)越混亂,越無序。鏡面則相反。
PBR材料的三個(gè)主要參數(shù)稱為:反照率、粗糙度、金屬度,上圖反映了在不同粗糙度、金屬度下物體的顯示效果。
再根據(jù)能量守恒以及反射率方程,就能將某一點(diǎn)處的光線的分布情況做一個(gè)大致的分析。但是在我們的使用場景中,環(huán)境中的具體光照信息是難以探測的,Apple的做法是用經(jīng)驗(yàn)豐富的機(jī)器學(xué)習(xí)工具去還原缺失的光照信息。
IBL方法用一個(gè)簡化模型來反映環(huán)境光地圖:環(huán)境光探測球,球上將反射周圍環(huán)境的各種光線,我們就可以找到在該位置上,光源的相對方位、周圍光線的相對位置。
上圖即為在ARKit 2.0的環(huán)境光探測器效果。在光照探測器位置,ARKit將自動(dòng)創(chuàng)建一個(gè)AREnvironmentProbeAnchor對象,為特定區(qū)域的空間區(qū)域提供光照信息。紋理由environmentTexture屬性表示,對于EnvironmentTexturing.automatic ARKit會(huì)自動(dòng)創(chuàng)建,定位并將AREnvironmentProbeAnchor對象添加到會(huì)話中。ForEnvironmentTexturing.manual通過創(chuàng)建AREnvironmentProbeAnchor對象,并將它們添加到需要探測光照信息的點(diǎn)上。
最近一個(gè)新的Unity插件已經(jīng)支持了ARKit 2.0的實(shí)時(shí)光照效果,游戲開發(fā)者Dan Miller發(fā)布了一個(gè)短片。“在ARKit 2中,用戶可以用環(huán)境探測器實(shí)時(shí)的反射周圍的光線”
再看一個(gè)demo。
在iOS 12更新后,虛擬物體與環(huán)境的融合效果將會(huì)大大增強(qiáng),特別是金屬質(zhì)感強(qiáng)的虛擬物體,比如BMW I Visualizer中的虛擬汽車
逼真的顯示效果是增強(qiáng)現(xiàn)實(shí)所追求的,若能從成像素質(zhì)上騙過觀眾的眼睛,AR的目的也就達(dá)到了。
-
無人機(jī)
+關(guān)注
關(guān)注
230文章
10544瀏覽量
182871 -
增強(qiáng)現(xiàn)實(shí)
+關(guān)注
關(guān)注
1文章
716瀏覽量
45089 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8455瀏覽量
133182
原文標(biāo)題:ARKit 2.0如何讓虛擬對象看起來更加真實(shí)
文章出處:【微信號:ARchan_TT,微信公眾號:AR醬】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論