揭秘Magic Leap核心技術(shù)
2月2日,MagicLeap官方表示獲得由阿里巴巴集團(tuán)領(lǐng)投的約7.94億美元融資。加上上輪由谷歌領(lǐng)投的5.42億美元,至2014年年底以來(lái),該公司總計(jì)已完成13.4億美元投資,總估值約45億美元。
這家位于佛羅里達(dá)的創(chuàng)業(yè)公司已經(jīng)創(chuàng)業(yè)數(shù)十年,陣容豪華,規(guī)模龐大,但卻對(duì)其核心技術(shù)諱莫如深,異常神秘。間或泄露幾條演示視頻,舉世驚艷,旋即嘩然。那么,MagicLeap究竟有何驚世駭俗的技術(shù)秘密?在此大膽推測(cè),力圖在其撲朔迷離的表象下,探究技術(shù)的實(shí)質(zhì)。
一條巨大的鯨魚(yú)從籃球場(chǎng)的地面中央飛躍而出
把辦公室變成游戲戰(zhàn)場(chǎng)
在計(jì)算機(jī)圖形學(xué)領(lǐng)域,三維場(chǎng)景渲染演示技術(shù)的演化進(jìn)程可以大致劃分成如下的歷史階段:針孔相機(jī)、雙目立體視覺(jué)、光場(chǎng)、數(shù)字全息。簡(jiǎn)而言之,針孔相機(jī)演示技術(shù)的代表作是早期的動(dòng)畫(huà)電影《最終幻想》,雙目立體視覺(jué)的代表作是3D版的《阿凡達(dá)》,光場(chǎng)的代表作就是MagicLeap,數(shù)字全息技術(shù)的代表作是《星球大戰(zhàn)》中的場(chǎng)景。
最終幻想:光線跟蹤法渲染,針孔相機(jī)顯示技術(shù)
3D版的《阿凡達(dá)》,雙目立體視覺(jué)
MagicLeap,增強(qiáng)現(xiàn)實(shí),光場(chǎng)技術(shù)
星球大戰(zhàn),數(shù)字全息技術(shù)
MagicLeap實(shí)現(xiàn)并普及了光場(chǎng)顯示技術(shù),這是三維場(chǎng)景顯示技術(shù)的一場(chǎng)實(shí)實(shí)在在的革命,獲得空前的投資自然是名至實(shí)歸。那么,什么是光場(chǎng)?這一技術(shù)是完全嶄新的嗎?這一技術(shù)發(fā)展的歷史脈絡(luò)如何?存在其他以光場(chǎng)技術(shù)起家的公司嗎?我們?cè)谙旅娴挠懻撝校鹨唤忉尅?/p>
針孔相機(jī)
傳統(tǒng)的光學(xué)相機(jī),其理想模型就是針孔相機(jī)。在計(jì)算機(jī)圖形學(xué)中,傳統(tǒng)的渲染方法都是基于這種相機(jī)模型。如圖7所示,從相機(jī)的光心出發(fā),經(jīng)過(guò)成像屏幕的每一個(gè)像素,發(fā)出一條射線。光學(xué)跟蹤法用幾何光學(xué)的物理法則計(jì)算這條射線的顏色,即為相應(yīng)像素的顏色。圖8展示了一個(gè)用光學(xué)跟蹤法算出的渲染圖像。在這里,我們需要一個(gè)概念上的轉(zhuǎn)換,每個(gè)像素不是一個(gè)點(diǎn),而是一條射線,這是理解光場(chǎng)的關(guān)鍵!換言之,一張相片就是通過(guò)光心的一簇射線。《最終幻想》就是用光學(xué)跟蹤法來(lái)渲染制作的。
光線跟蹤法中的針孔相機(jī)模型
用光線跟蹤法渲染的一幅場(chǎng)景
傳統(tǒng)的顯示方法,例如屏幕、LCD/LED,是基于傳統(tǒng)觀念的,即把每個(gè)像素作為一個(gè)點(diǎn),從不同的角度看過(guò)去,同一個(gè)像素的顏色不變。換言之,這種顯示方式失去了射線方向的信息。
雙目立體視覺(jué)
人類(lèi)具有兩只眼睛,觀看物體時(shí)兩眼各自成像,大腦根據(jù)兩眼成像的細(xì)微差別計(jì)算每一點(diǎn)的深度信息,從而得到立體感覺(jué)。模仿人眼,我們可以用雙鏡頭相機(jī)得到雙目立體相片。
雙目立體相機(jī)
阿波羅登月計(jì)劃中拍攝的雙目立體相片
本質(zhì)上而言,雙目立體視覺(jué)相片就是從兩個(gè)光心出發(fā)的兩簇射線。3D版《阿凡達(dá)》就是以此原理制作的。相對(duì)于單目相機(jī),雙目立體視覺(jué)時(shí)間復(fù)雜度和空間復(fù)雜度加倍。
光場(chǎng)(Light Field)- 魔盒解釋
光場(chǎng)(Light Field)的魔盒解釋
我們假設(shè)用一個(gè)玻璃盒子罩住一只兔子,然后透過(guò)玻璃盒子來(lái)觀察這只兔子。從盒子表面的任意一點(diǎn),向三維空間的任意一個(gè)方向發(fā)出一條射線,這條射線的顏色由兔子和光照條件所決定。我們用來(lái)表示玻璃盒子,表示單位向量,一條射線表示為,所有射線的集合記為。每條射線對(duì)應(yīng)著一個(gè)顏色,我們用三維空間中的一個(gè)點(diǎn)來(lái)表示。因此,光場(chǎng)就是從射線空間到顏色空間的映射。換言之,光場(chǎng)是定義在射線空間上的矢量值函數(shù)。
假設(shè)我們?nèi)サ袅瞬AШ凶又械耐米?,但是這個(gè)玻璃盒子是一個(gè)魔盒,光場(chǎng)信息被完美保留。當(dāng)我們觀察這一魔盒的時(shí)候,所有經(jīng)過(guò)一只眼睛的射線合成了視網(wǎng)膜上的一幅圖像。我們可以自由地改變距離和視角,兔子在視網(wǎng)膜上的圖像相應(yīng)地自然變化,根本覺(jué)察不到兔子的消失。因此,有了魔盒,我們不再需要真正的兔子。這個(gè)魔盒就是兔子的光場(chǎng)。
在光學(xué)領(lǐng)域中,光場(chǎng)是一個(gè)古老的概念。在1996年被微軟和斯坦福學(xué)者引進(jìn)到計(jì)算機(jī)圖形學(xué)領(lǐng)域,發(fā)展到2016年的今天,已經(jīng)整整二十個(gè)年頭了。雖然在學(xué)術(shù)界,人們不懈地研究深化,真正在工業(yè)界產(chǎn)生影響,還是近幾年的事情。MagicLeap應(yīng)該算是LightField理論在現(xiàn)實(shí)應(yīng)用中的一個(gè)巔峰。
光場(chǎng)渲染我們可以用兔子的光場(chǎng)來(lái)取代兔子,渲染生成各種角度的照片,這樣我們無(wú)需為建立兔子的幾何模型,紋理模型和光照模型。對(duì)于大場(chǎng)景,復(fù)雜光照條件,或者復(fù)雜幾何模型(如長(zhǎng)絨玩具)等等,光場(chǎng)比實(shí)物的數(shù)字模型更為簡(jiǎn)單,或者光場(chǎng)比光線跟蹤得到的渲染結(jié)果更加逼真,或者更加高效,我們用光場(chǎng)來(lái)渲染。這是所謂的基于圖像的渲染方法。歷史上,微軟曾經(jīng)出過(guò)一版基于光場(chǎng)的游戲,類(lèi)似孤島尋寶,所有場(chǎng)景都是從真實(shí)自然中采集,非常逼真,但是最后沒(méi)有引起任何反響,無(wú)疾而終。