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

如果出现以下错误:

1
2
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已经准备好了,着手自己的开发计划吧!

最后更新时间:2017年1月10日 16:08 
链接:https://yangbo.tech/2017/01/03/2017-01-03-tango-with-daydream-is-coming/

Tango+Daydream,刀剑合璧的Android VR开发相关推荐

  1. 谷歌 Daydream VR 开发工具

    现在,谷歌的虚拟现实平台 Daydream 已经准备好迎接开发者的到来,这得益于新发布的 Googe VR SDK(开发者工具包),它在周四结束测试正式上线.谷歌表示,这套工具包将让开发者能够为支持 ...

  2. android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...

    本文将带你了解Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放,希望本文对大家学Android有所帮助. Androi ...

  3. Android VR入门文章

    android官方给出了两种VR实现方式CardBoard和DayDream. 这两种有什么区别呢? 白日梦是高质量,移动虚拟现实的平台.在主页上方官方也描述它为:低延迟,身临其境的,互动的移动VR的 ...

  4. VR开发从何入手的实战分享

    摘要: 6月25日,由CSDN主办的"[VR技术开放日]VR开发从何入手"在北京辽宁大厦隆重举行,会议邀请到小米互娱VR技术专家房燕良.焰火工坊CTO王明杨.资深VR开发工程师王秋 ...

  5. 《AR与VR开发实战》——2.7 3D物体识别

    本节书摘来自华章出版社<AR与VR开发实战>一书中的第2章,第2.7节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7 3D ...

  6. Android VR 全景图

    Android VR 全景图  效果图 谷歌的VR: 虚拟实境(英语:virtual reality,缩写为VR),简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视 ...

  7. 《AR与VR开发实战》导读

    前 言 增强现实(Augmented Reality)简称AR,是一种实时计算摄像机捕捉到的现实影像的位置及角度并加上相应虚拟信息的技术.这种技术不仅能展现真实世界的信息,还能通过增加虚拟信息而对现实 ...

  8. android应用开发_2020年排名前五的Android应用开发公司

    android应用开发 The mobile app industry is at its peak of success and keeps evolving with the latest mob ...

  9. 【狂云歌之unity_vr】VR开发中的优化

    [狂云歌之unity_vr]VR开发中的优化 前言 大概做了大半年的VR开发,HTCVive上与room scale和手柄控制器.激光相关的开发做过,gearvr使用oculus sdk开发做过,使用 ...

最新文章

  1. Kubernetes 第五章 YAML
  2. python学习之-- mysql模块和sqlalchemy模块
  3. python实战项目_11 个实战项目,掌握 Python 数据可视化
  4. python多线程处理文件_python多线程分块读取文件
  5. 春运首日武警广东总队护航
  6. CSS基础知识(display和visibility、overflow、文档流)
  7. vsc 搜索特定代码_特定问题的通用解决方案:何时编写代码以及何时编写代码...
  8. 《java入门第一季》之类String类小案例
  9. 有史以来最伟大的软件开发书籍(国外篇)
  10. 【荐】【转】ASP.NET ViewState详解
  11. Mac 系统SourceTree 配置VSCode代码对比工具
  12. 深度学习面试题之LSTM补充
  13. 直击备份恢复的痛点:基于 TiDB Binlog 的快速时间点恢复
  14. 发送RST报文的几种可能的情况
  15. 怎么安装Nginx的监控模块
  16. linux shell编程从入门到精通pdf_SHELL脚本编程入门
  17. RocketMQ 集群告警
  18. 当下各种关系数据库管理系统
  19. win10切换输入法快捷键_常用win10快捷键有哪些
  20. 安装 AWS Load Balancer Controller 附加组件

热门文章

  1. Unknown opcode
  2. iphone开发JSON库之BSJSONAdditions
  3. public medical image database
  4. 向上类型转换和拷贝构造函数
  5. CodeForces - 1481E Sorting Books(贪心+dp)
  6. 2020CCPC(威海) - Clock Master(数论+分组背包)
  7. CodeForces - 1141D Colored Boots(暴力+水题)
  8. 中石油训练赛 - 斗地主(bfs)
  9. Keras-数据准备
  10. Unhandled promise rejection Error: errCode: -501007 invalid parameters | errMsg: Invalid Key Name: _