Tango+Daydream,刀剑合璧的Android VR开发
Tango+Daydream,刀劍合璧的Android VR開發
2017-01-03隨著ASUS在CES2017上宣布了全球第一款同時具有Tango和Daydream兩種能力的ZenFone AR,終于使得AR/VR/MR這些近來全球開發圈內超級熱門的詞匯可以讓我們國內的Android開發者直接利用手中的Android Studio和方便入手的Android設備來進行虛擬開發的探索了!
三種交互
AR
增強現實,人眼接受到的光線包括了現實的光和AR設備屏幕發出的光,通過人眼的處理能力進行合成,增強現實感。
Phab 2 Pro就是一款AR設備,可以拍攝可愛的小貓或小狗跟小寶寶一起玩的照片而不用擔心安全,因為小動物都是虛擬的。
VR
虛擬現在,使用頭盔或Cardboard完全遮擋住現實的光線,人眼只接受VR設備發出的光,跟現實完全隔離。
Oculus Rift, PlayStation VR, Samsung Gear VR 以及 HTC Vive都屬于此類設備。
MR
混合現實,MR設備自身具有三維坐標感知能力,隨著人的移動,虛擬物體的顯示也隨著變化。
Hololens屬于MR設備。
兩大技術
Tango(屠龍)
正如2000年時Sumsung在SCH-V200手機上上添加了攝像頭,手機開始了睜眼看世界的能力,現在Tango攝像頭為手機添加了真實三維世界的感知能力。
簡單的講,Tango具有以下三大功能:
- Motion tracking: 我在哪里,空間位置
- Area learning: 前邊有什么,看到什么
- Depth perception: 前邊有多遠 不論是使用ToF(Time of Flight),通過傳感器發出經調制的近紅外光,遇物體后反射,傳感器通過計算光線發射和反射時間差或相位差,來換算被拍攝景物的距離,以產生深度信息。 還是結構光計算,通過向檢測空間內投射經過編碼的激光光斑陣列,對空間進行標定并輔助計算三維空間位置。
所得到的如下圖中的cloud point數據,可以看到此時共采集到了12464個帶有XYZ三維坐標的點。
Daydream(倚天)
目的是要讓用戶得到最好的虛擬體驗,通過定義了一組最低的硬件運行效果標準以及為開發者提供易用的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現在兼容的手機尺寸是5.0到5.7寸屏,那么ZenFone AR搭配Android 7(Nougat)的5.7寸屏用起來應當是相當順手的。
Tango開發
首先,你需要一款Tango設備,因為還沒有可以模擬Tango相關攝像頭硬件的模擬器,上節中?Phab 2 Pro?是很不錯的開發機!
現在以Java API開發為例來進入Tango APP的開發,如果你熟悉Unity 3D的開發,就直接用Unity 3D的package,因為80%的Tango APP都是用Unity 3D開發的,當然最多的就是游戲啦!
環境準備
Android Studio 2.2
USB debugging
Phab 2 Pro開啟Developer option中的USB debugging,沒有Developer option,那你肯定是Android開發新手,在Settings->About phone下連續點擊7次Build number就可以召喚出Developer option了。
獲取示例代碼
| 1 | git clone https://github.com/googlesamples/tango-examples-java.git |
打開Java Cloud point example
直接 control + R
選擇Phab 2 Pro
如果出現以下錯誤:
| 12 | Error:Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForDebug'.> java.lang.NullPointerException (no error message) |
只需要將compileSdkVersion和targetSdkVersion的版本號跟buildToolsVersion保持一致。
安裝成功
在手機上可以看到Cloud point,實時的總點數和點的平均深度。
更多
https://github.com/lvonasek/tango/
利用C API對采集到的Point cloud進行處理,實現三維重建的APP。
近似的掃描效果:
Daydream開發
再來重溫下Daydream的目的,可以簡單看到是Cardboard的升級版本,但卻定義了一個可以滿足用戶體驗的最低硬件標準并開發了一整套API來讓開發者可以方便的開發出高質量體驗的應用。
同樣的Daydream APP需要一個Daydream ready的手機來運行或可以運行Cardboard apps且大于Android 4.4(kitkat)的手機,這里同樣使用Phab 2 Pro。
使用Daydream主要用來完成以下開發任務:
- 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 |
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已經準備好了,著手自己的開發計劃吧!
鏈接:https://yangbo.tech/2017/01/03/2017-01-03-tango-with-daydream-is-coming/
總結
以上是生活随笔為你收集整理的Tango+Daydream,刀剑合璧的Android VR开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装Microsoft Hololens
- 下一篇: CoreOS安装到硬盘