隨著 ASUS 在 CES2017 上宣布了全球第一款同時具有 Tango 和 Daydream 兩種能力的 ZenFone AR,終于使得 AR/VR/MR 這些近來全球開發(fā)圈內(nèi)超級熱門的詞匯可以讓我們國內(nèi)的 Android 開發(fā)者直接利用手中的 Android Studio 和方便入手的 Android 設備來進行虛擬開發(fā)的探索了!
1. 三種交互
1)AR
增強現(xiàn)實,人眼接受到的光線包括了現(xiàn)實的光和 AR 設備屏幕發(fā)出的光,通過人眼的處理能力進行合成,增強現(xiàn)實感。
Phab 2 Pro 就是一款 AR 設備,可以拍攝可愛的小貓或小狗跟小寶寶一起玩的照片而不用擔心安全,因為小動物都是虛擬的。
2)VR
虛擬現(xiàn)在,使用頭盔或 Cardboard 完全遮擋住現(xiàn)實的光線,人眼只接受 VR 設備發(fā)出的光,跟現(xiàn)實完全隔離。
Oculus Rift, PlayStation VR, Samsung Gear VR 以及 HTC Vive 都屬于此類設備。
3)MR
混合現(xiàn)實,MR 設備自身具有三維坐標感知能力,隨著人的移動,虛擬物體的顯示也隨著變化。
Hololens 屬于 MR 設備。
2. 兩大技術
1)Tango (屠龍)
正如 2000 年時 Sumsung 在 SCH-V200 手機上上添加了攝像頭,手機開始了睜眼看世界的能力,現(xiàn)在 Tango 攝像頭為手機添加了真實三維世界的感知能力。
簡單的講,Tango 具有以下三大功能:
Motion tracking: 我在哪里,空間位置
Area learning: 前邊有什么,看到什么
Depth perception: 前邊有多遠
不論是使用 ToF (Time of Flight),通過傳感器發(fā)出經(jīng)調制的近紅外光,遇物體后反射,傳感器通過計算光線發(fā)射和反射時間差或相位差,來換算被拍攝景物的距離,以產(chǎn)生深度信息。
還是結構光計算,通過向檢測空間內(nèi)投射經(jīng)過編碼的激光光斑陣列,對空間進行標定并輔助計算三維空間位置。
所得到的如下圖中的 cloud point 數(shù)據(jù),可以看到此時共采集到了 12464 個帶有 XYZ 三維坐標的點。
2)Daydream (倚天)
目的是要讓用戶得到最好的虛擬體驗,通過定義了一組 的硬件運行效果標準以及為開發(fā)者提供易用的 Daydream API,消除了導致用戶眩暈的畫面延遲,做到 性價比的虛擬體驗。
3. 硬件
1)Phab 2 Pro
全球第一款消費級的 Tango 設備,使用驍龍 652,4G 內(nèi)存和 64G 存儲,重要的是國內(nèi)版本和國外版本都具有完整的 Tango 功能。
Android 感知三維世界的 ”眼睛”– Tango 組件:
典型的應用嘲:
2)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 寸屏用起來應當是相當順手的。
4. 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ā)的,當然最多的就是游戲啦!
1)環(huán)境準備
1. Android Studio 2.2
2. USB debugging
Phab 2 Pro 開啟 Developer option 中的 USB debugging,沒有 Developer option,那你肯定是 Android 開發(fā)新手,在 Settings->About phone 下連續(xù)點擊 7 次 Build number 就可以召喚出 Developer option 了。
2)獲取示例代碼
git clone https://github.com/googlesamples/tango-examples-java.git
3)打開 Java Cloud point example
直接 control + R
選擇 Phab 2 Pro
如果出現(xiàn)以下錯誤:
1 Error:Execution failed for task ‘:app:transformNative_libsWithStripDebugSymbolForDebug’.
2 > java.lang.NullPointerException (no error message)
只需要將 compileSdkVersion 和 targetSdkVersion 的版本號跟 buildToolsVersion 保持一致。
安裝成功
在手機上可以看到 Cloud point,實時的總點數(shù)和點的平均深度。
4)更多
https://github.com/lvonasek/tango
利用C API對采集到的Point cloud進行處理,實現(xiàn)三維重建的APP。
近似的掃描效果:
5. 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.
1)獲取代碼
git clone https://github.com/googlevr/gvr-android-sdk.git
2)Android Studio
打開 gvr-android-sdk
運行( control + R)sample-sdk-treasurehunt
選擇 Phab 2 Pro
在手機上配合 Cardboard 或 Daydream Viewer (當然國內(nèi)的各種盒子也是可以的,由于 Daydream Viewer 自由沒有添加計算能力,只是在操作手柄上加了外置九軸慣性測量單元來輔助 追蹤)
6. 總結
使用 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ā)計劃吧!
投稿郵箱:chuanbeiol@163.com 詳情請訪問川北在線:http://sanmuled.cn/