隨著ASUS在CES2017上宣布了全球第一款同時具有Tango和Daydream兩種能力的ZenFone AR,終于使得AR/VR/MR這些近來全球開發(fā)圈內超級熱門的詞匯可以讓我們國內的Android開發(fā)者直接利用手中的Android Studio和方便入手的Android設備來進行虛擬開發(fā)的探索了箍镜!
三種交互
AR
增強現(xiàn)實源祈,人眼接受到的光線包括了現(xiàn)實的光和AR設備屏幕發(fā)出的光,通過人眼的處理能力進行合成色迂,增強現(xiàn)實感香缺。
Phab 2 Pro就是一款AR設備,可以拍攝可愛的小貓或小狗跟小寶寶一起玩的照片而不用擔心安全歇僧,因為小動物都是虛擬的图张。

VR
虛擬現(xiàn)在,使用頭盔或Cardboard完全遮擋住現(xiàn)實的光線诈悍,人眼只接受VR設備發(fā)出的光祸轮,跟現(xiàn)實完全隔離。
Oculus Rift侥钳, PlayStation VR适袜, Samsung Gear VR 以及 HTC Vive都屬于此類設備。

MR
混合現(xiàn)實舷夺,MR設備自身具有三維坐標感知能力苦酱,隨著人的移動,虛擬物體的顯示也隨著變化冕房。
Hololens屬于MR設備攘宙。

兩大技術
Tango(屠龍)
正如2000年時Sumsung在SCH-V200手機上上添加了攝像頭,手機開始了睜眼看世界的能力收奔,現(xiàn)在Tango攝像頭為手機添加了真實三維世界的感知能力烙无。

簡單的講,Tango具有以下三大功能:
- Motion tracking: 我在哪里详拙,空間位置
- Area learning: 前邊有什么帝际,看到什么
-
Depth perception: 前邊有多遠
2017-01-03-tango-with-daydream-is-coming/20170103160452943.png
不論是使用ToF(Time of Flight),通過傳感器發(fā)出經(jīng)調制的近紅外光饶辙,遇物體后反射蹲诀,傳感器通過計算光線發(fā)射和反射時間差或相位差,來換算被拍攝景物的距離弃揽,以產(chǎn)生深度信息脯爪。
2017-01-03-tango-with-daydream-is-coming/20170103171451342.png
還是結構光計算则北,通過向檢測空間內投射經(jīng)過編碼的激光光斑陣列,對空間進行標定并輔助計算三維空間位置痕慢。
2017-01-03-tango-with-daydream-is-coming/20170103171814160.png
所得到的如下圖中的cloud point數(shù)據(jù)尚揣,可以看到此時共采集到了12464個帶有XYZ三維坐標的點。

Daydream(倚天)
目的是要讓用戶得到最好的虛擬體驗掖举,通過定義了一組最低的硬件運行效果標準以及為開發(fā)者提供易用的Daydream API快骗,消除了導致用戶眩暈的畫面延遲,做到最高性價比的虛擬體驗塔次。

硬件
Phab 2 Pro
全球第一款消費級的Tango設備方篮,使用驍龍652,4G內存和64G存儲励负,重要的是國內版本和國外版本都具有完整的Tango功能藕溅。京東上可以直接下單,支持211的继榆!
缺點是作為普通手機使用蜈垮,6.4寸屏幕太大,顔值也不夠高裕照,整體偏笨攒发。
Android感知三維世界的"眼睛"--Tango組件:


典型的應用場景:

ZenFone AR
全球第一款消費級的Tango+Daydream設備,使用驍龍821來保證用戶得到Daydream體驗晋南,第一款Daydream手機Google Pixel和Asus Zenphone 3也使用的是驍龍821惠猿。由于Daydream Viewer現(xiàn)在兼容的手機尺寸是5.0到5.7寸屏,那么ZenFone AR搭配Android 7(Nougat)的5.7寸屏用起來應當是相當順手的负间。

Tango開發(fā)
首先偶妖,你需要一款Tango設備,因為還沒有可以模擬Tango相關攝像頭硬件的模擬器政溃,上節(jié)中 Phab 2 Pro 是很不錯的開發(fā)機趾访!
現(xiàn)在以Java API開發(fā)為例來進入Tango APP的開發(fā),如果你熟悉Unity 3D的開發(fā)董虱,就直接用Unity 3D的package扼鞋,因為80%的Tango APP都是用Unity 3D開發(fā)的,當然最多的就是游戲啦愤诱!
環(huán)境準備
Android Studio 2.2

USB debugging
Phab 2 Pro開啟Developer option中的USB debugging云头,沒有Developer option,那你肯定是Android開發(fā)新手淫半,在Settings->About phone下連續(xù)點擊7次Build number就可以召喚出Developer option了溃槐。

獲取示例代碼
git clone https://github.com/googlesamples/tango-examples-java.git

打開Java Cloud point example

直接 control + R

選擇Phab 2 Pro

如果出現(xiàn)以下錯誤:
Error:Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForDebug'.
> java.lang.NullPointerException (no error message)
只需要將compileSdkVersion和targetSdkVersion的版本號跟buildToolsVersion保持一致。

安裝成功

在手機上可以看到Cloud point科吭,實時的總點數(shù)和點的平均深度昏滴。

更多
https://github.com/lvonasek/tango/
利用C API對采集到的Point cloud進行處理猴鲫,實現(xiàn)三維重建的APP。
近似的掃描效果:

Daydream開發(fā)
再來重溫下Daydream的目的谣殊,可以簡單看到是Cardboard的升級版本变隔,但卻定義了一個可以滿足用戶體驗的最低硬件標準并開發(fā)了一整套API來讓開發(fā)者可以方便的開發(fā)出高質量體驗的應用。
同樣的Daydream APP需要一個Daydream ready的手機來運行或可以運行Cardboard apps且大于Android 4.4(kitkat)的手機蟹倾,這里同樣使用Phab 2 Pro。
使用Daydream主要用來完成以下開發(fā)任務:
- Lens distortion correction.
- Spatial audio.
- Head tracking.
- 3D calibration.
- Side-by-side rendering.
- Stereo geometry configuration.
- User input event handling.
獲取代碼
git clone https://github.com/googlevr/gvr-android-sdk.git

Android Studio
打開gvr-android-sdk

運行( control + R)sample-sdk-treasurehunt

選擇 Phab 2 Pro

在手機上配合Cardboard或Daydream Viewer(當然國內的各種盒子也是可以的猖闪,由于Daydream Viewer自由沒有添加計算能力鲜棠,只是在操作手柄上加了外置九軸慣性測量單元來輔助精確追蹤)

總結
使用ZenFone AR和Daydream Viewer,預計總價不會超過人民幣5000元培慌,就可以不用拖長長的連接線豁陆,也不用再專門配備一個高性能主機,在家里完全自由的沉浸在Google Street View吵护, YouTube盒音, Netflix, Hulu馅而, HBO以及諸如 Fantastic Beasts 祥诽, Where to Find Them, Need for Speed和Gunjack 2這些VR游戲中瓮恭,不是安靜的坐著雄坪,而是360度的自由視角。
完美VR的硬件和API已經(jīng)準備好了屯蹦,著手自己的開發(fā)計劃吧维哈!