技術(shù)宅
蘋(píng)果今年6月在WWDC17上推出ARKit,使iPhone一夜之間成為有數(shù)億用戶的最大AR平臺(tái)。一時(shí)間基于ARKit的各種玩法紛紛出現(xiàn),其中Dan Monaghan用ARKit開(kāi)發(fā)出了一款名為Float0的APP,它可以讓手機(jī)拍攝的一系列照片靜止漂浮在空中,可以把任何一個(gè)場(chǎng)景都變成一個(gè)照片展示中心。今天我們就來(lái)聊聊什么是ARKit,以及照片懸浮后面又有什么樣的技術(shù)原理。
真黑科技?認(rèn)識(shí)ARKit
大家知道AR是虛擬現(xiàn)實(shí)混合技術(shù),ARKit則是蘋(píng)果為AR技術(shù)在iOS設(shè)備上應(yīng)用推出的開(kāi)發(fā)框架,類(lèi)似微軟的HoloLens和谷歌的Tango。不過(guò)和這兩者不同的是,ARkit不需要專門(mén)的外部設(shè)備,現(xiàn)役的許多iOS設(shè)備(如iPhone 6s及以上機(jī)型)就足夠展現(xiàn)出比過(guò)去更好的AR效果了。比如在基于ARKit開(kāi)發(fā)的星巴克廣告視頻中,用戶可以通過(guò)iPhone手機(jī)看到一杯虛擬的星巴克咖啡,同時(shí)旁邊還漂浮著一個(gè)廣告板,上面標(biāo)示著一些優(yōu)惠信息,而圖片看上去就像是真實(shí)的咖啡杯和廣告板(圖1)。
而微軟的HoloLens則需要有專門(mén)的景深傳感器,谷歌的Tango則需要手機(jī)配備專門(mén)的3D傳感器。如Tango手機(jī)Lenovo Phab 2就配備主攝像頭、景深記錄鏡頭和運(yùn)動(dòng)追蹤鏡頭,普通Android手機(jī)是無(wú)法借助Tango做出AR特效的(圖2)。
任何場(chǎng)景變演示中心——照片懸浮背后的秘密
如上所示,ARKit是一個(gè)AR技術(shù)開(kāi)發(fā)框架,開(kāi)發(fā)者借助ARKit可以在手機(jī)上開(kāi)發(fā)出各種APP,實(shí)現(xiàn)很多有趣而實(shí)用的AR特效。其中的Float0可以讓手機(jī)拍攝的一系列照片靜止漂浮在空中,那么這個(gè)是怎么實(shí)現(xiàn)的呢?
首先我們要來(lái)了解一下AR是怎么實(shí)現(xiàn)的。ARKit框架是基于3D場(chǎng)景(SceneKit)實(shí)現(xiàn)的增強(qiáng)現(xiàn)實(shí),通過(guò)蘋(píng)果的游戲引擎框架(3D引擎SceneKit)實(shí)現(xiàn)AR效果,它可以在iPhone相機(jī)捕捉到的現(xiàn)實(shí)世界的圖像中顯示一個(gè)虛擬的3D模型,這樣借助手機(jī)攝像頭我們就可以看到逼真的3D虛擬效果。AR技術(shù)的核心是可以將虛擬的物體無(wú)縫地和當(dāng)前實(shí)際物理環(huán)境結(jié)合在一起,主要包括3D渲染和空間定位。
以上面介紹的Float0應(yīng)用為例,首先APP會(huì)對(duì)用戶拍攝的照片進(jìn)行3D渲染,使得照片在攝像頭是以3D模式顯示(而不像常規(guī)的平面顯示)。接著利用ARKit的“Insideout”追蹤技術(shù)進(jìn)行空間的定位,也就是說(shuō)3D照片可以結(jié)合不同的物理環(huán)境實(shí)時(shí)顯示在用戶的攝像頭中,它可以通過(guò)對(duì)攝像頭圖像中的特征點(diǎn)識(shí)別和跟蹤,快速重建出場(chǎng)景的3D模型。比如在房間展示,攝像頭追蹤到房間物理環(huán)境后,可以將這些3D照片以懸浮的方式排列在墻壁上,讓你的房間瞬間變成一個(gè)3D照片館(圖3)。
因?yàn)锳RKit使用“Inside-out”追蹤技術(shù),因此如果你變換了環(huán)境,比如到了戶外,那么它可以快速完成環(huán)境的追蹤,讓你的照片以懸浮方式排列在門(mén)口或者草坪上,甚至大街上,讓任意一個(gè)環(huán)境都可以成為照片展示場(chǎng)所(圖4)。
其他基于ARKit開(kāi)發(fā)的應(yīng)用原理大同小異,總之借助3D渲染和追蹤技術(shù),開(kāi)發(fā)者可以將很多好玩、有趣的東西虛擬化,并且和實(shí)際環(huán)境無(wú)縫地結(jié)合在一起,給你極度真實(shí)的AR感受。比如為了展示泰坦尼克號(hào)出航的AR Demo,開(kāi)發(fā)者在湖邊虛擬一艘出航的泰坦尼克號(hào)(圖5)。為了驗(yàn)證ARKit的渲染效果,一位開(kāi)發(fā)者則用ARKit做出的虛擬椅子放在辦公室,虛擬椅子幾乎能達(dá)到以假亂真的程度(圖6)。
不僅僅是好玩 AR技術(shù)可以給我們帶來(lái)更多
上面介紹Float0的APP可以實(shí)現(xiàn)照片在空中的懸浮,看上去是不是很有趣?不過(guò)AR技術(shù)在手機(jī)上的應(yīng)用可不僅僅是好玩,它還可以給我們的生活帶來(lái)更多的便利。比如基于該技術(shù)開(kāi)發(fā)的AR導(dǎo)航,當(dāng)用戶確立好目的地之后,手機(jī)會(huì)自動(dòng)開(kāi)啟攝像頭并提供AR實(shí)景導(dǎo)航。這和傳統(tǒng)的平面地圖導(dǎo)航不同的是,在手機(jī)上顯示的是當(dāng)前環(huán)境實(shí)時(shí)3D實(shí)景,我們只需要跟著屏幕上的箭頭指示行走即可到達(dá)目的地,即使是路盲也很容易找到目的地(圖7)。
當(dāng)然AR還可以應(yīng)用在很多場(chǎng)景中,比如使用類(lèi)似技術(shù)開(kāi)發(fā)的虛擬購(gòu)物。網(wǎng)購(gòu)用戶可以預(yù)先將需要購(gòu)買(mǎi)的沙發(fā)、床鋪等實(shí)物轉(zhuǎn)換為同樣比例的虛擬物品,然后在手機(jī)上將它們擺放在自己房間的任意位置并可以隨時(shí)移動(dòng)(圖8)。
當(dāng)然,AR技術(shù)還可以廣泛用于教育、旅游、游戲等領(lǐng)域,幫助學(xué)生或者游客、玩家更直觀地了解事物或景觀等,讓我們獲得前所未有的虛擬現(xiàn)實(shí)感受。