Tango+Daydream,刀剑合璧的Android VR开发
Tango+Daydream,刀劍合璧的Android VR開發(fā)
2017-01-03隨著ASUS在CES2017上宣布了全球第一款同時具有Tango和Daydream兩種能力的ZenFone AR,終于使得AR/VR/MR這些近來全球開發(fā)圈內(nèi)超級熱門的詞匯可以讓我們國內(nèi)的Android開發(fā)者直接利用手中的Android Studio和方便入手的Android設(shè)備來進行虛擬開發(fā)的探索了!
三種交互
AR
增強現(xiàn)實,人眼接受到的光線包括了現(xiàn)實的光和AR設(shè)備屏幕發(fā)出的光,通過人眼的處理能力進行合成,增強現(xiàn)實感。
Phab 2 Pro就是一款A(yù)R設(shè)備,可以拍攝可愛的小貓或小狗跟小寶寶一起玩的照片而不用擔(dān)心安全,因為小動物都是虛擬的。
VR
虛擬現(xiàn)在,使用頭盔或Cardboard完全遮擋住現(xiàn)實的光線,人眼只接受VR設(shè)備發(fā)出的光,跟現(xiàn)實完全隔離。
Oculus Rift, PlayStation VR, Samsung Gear VR 以及 HTC Vive都屬于此類設(shè)備。
MR
混合現(xiàn)實,MR設(shè)備自身具有三維坐標(biāo)感知能力,隨著人的移動,虛擬物體的顯示也隨著變化。
Hololens屬于MR設(shè)備。
兩大技術(shù)
Tango(屠龍)
正如2000年時Sumsung在SCH-V200手機上上添加了攝像頭,手機開始了睜眼看世界的能力,現(xiàn)在Tango攝像頭為手機添加了真實三維世界的感知能力。
簡單的講,Tango具有以下三大功能:
- Motion tracking: 我在哪里,空間位置
- Area learning: 前邊有什么,看到什么
- Depth perception: 前邊有多遠 不論是使用ToF(Time of Flight),通過傳感器發(fā)出經(jīng)調(diào)制的近紅外光,遇物體后反射,傳感器通過計算光線發(fā)射和反射時間差或相位差,來換算被拍攝景物的距離,以產(chǎn)生深度信息。 還是結(jié)構(gòu)光計算,通過向檢測空間內(nèi)投射經(jīng)過編碼的激光光斑陣列,對空間進行標(biāo)定并輔助計算三維空間位置。
所得到的如下圖中的cloud point數(shù)據(jù),可以看到此時共采集到了12464個帶有XYZ三維坐標(biāo)的點。
Daydream(倚天)
目的是要讓用戶得到最好的虛擬體驗,通過定義了一組最低的硬件運行效果標(biāo)準以及為開發(fā)者提供易用的Daydream API,消除了導(dǎo)致用戶眩暈的畫面延遲,做到最高性價比的虛擬體驗。
硬件
Phab 2 Pro
全球第一款消費級的Tango設(shè)備,使用驍龍652,4G內(nèi)存和64G存儲,重要的是國內(nèi)版本和國外版本都具有完整的Tango功能。京東上可以直接下單,支持211的!
缺點是作為普通手機使用,6.4寸屏幕太大,顔值也不夠高,整體偏笨。
Android感知三維世界的”眼睛”–Tango組件:
典型的應(yīng)用場景:
ZenFone AR
全球第一款消費級的Tango+Daydream設(shè)備,使用驍龍821來保證用戶得到Daydream體驗,第一款Daydream手機Google Pixel和Asus Zenphone 3也使用的是驍龍821。由于Daydream Viewer現(xiàn)在兼容的手機尺寸是5.0到5.7寸屏,那么ZenFone AR搭配Android 7(Nougat)的5.7寸屏用起來應(yīng)當(dāng)是相當(dāng)順手的。
Tango開發(fā)
首先,你需要一款Tango設(shè)備,因為還沒有可以模擬Tango相關(guān)攝像頭硬件的模擬器,上節(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ā)的,當(dāng)然最多的就是游戲啦!
環(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了。
獲取示例代碼
| 1 | git clone https://github.com/googlesamples/tango-examples-java.git |
打開Java Cloud point example
直接 control + R
選擇Phab 2 Pro
如果出現(xiàn)以下錯誤:
| 12 | 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的升級版本,但卻定義了一個可以滿足用戶體驗的最低硬件標(biāo)準并開發(fā)了一整套API來讓開發(fā)者可以方便的開發(fā)出高質(zhì)量體驗的應(yīng)用。
同樣的Daydream APP需要一個Daydream ready的手機來運行或可以運行Cardboard apps且大于Android 4.4(kitkat)的手機,這里同樣使用Phab 2 Pro。
使用Daydream主要用來完成以下開發(fā)任務(wù):
- 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(當(dāng)然國內(nèi)的各種盒子也是可以的,由于Daydream Viewer自由沒有添加計算能力,只是在操作手柄上加了外置九軸慣性測量單元來輔助精確追蹤)
總結(jié)
使用ZenFone AR和Daydream Viewer,預(yù)計總價不會超過人民幣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ā)計劃吧!
鏈接:https://yangbo.tech/2017/01/03/2017-01-03-tango-with-daydream-is-coming/
總結(jié)
以上是生活随笔為你收集整理的Tango+Daydream,刀剑合璧的Android VR开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装Microsoft Hololens
- 下一篇: CoreOS安装到硬盘