Tango+Daydream,刀剑合璧的Android VR开发
2017-02-12 19:01
513 查看
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) |
安装成功
在手机上可以看到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和Gunjack2这些VR游戏中,不是安静的坐着,而是360度的自由视角。
完美VR的硬件和API已经准备好了,着手自己的开发计划吧!
最后更新时间:2017年1月10日 16:08
链接:https://yangbo.tech/2017/01/03/2017-01-03-tango-with-daydream-is-coming/
相关文章推荐
- DayDream VR应用开发实践 (第一个android DayDream应用)
- Play 2D games on Nexus 6P running Android N7.1.1 with Daydream View VR headset
- Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
- Google DayDream VR开发
- 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt
- 【Android开发VR实战】二.播放360°全景视频
- 【Android开发VR实战】二.播放360°全景视频
- android开发学习 day(六)单选框,复选框
- day day up--Android开发之Fragment间的通信
- Daydream & HTC VR課程
- Android VR 简单开发
- 一起学Google Daydream VR开发,快速入门开发基础教程一:Android端开发环境配置一
- [DAY 1]Android开发(1)基础
- Unity3D for VR Android Class 1:开发环境配置
- 三、VR视频播放器开发 ---- Android VR视频/Google VR for Android /VR Pano/VR Video
- 【Android开发VR实战】一.给用户呈现一个360°全景图片
- 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt
- day day up--Android开发TimePicker的使用
- 四、VR全景图显示器开发 ---- Android VR视频/Google VR for Android /VR Pano/VR Video
- 【Android开发VR实战】二.播放360°全景视频(自用笔记)