AR/VR/MR,Android开发者可以做些什么?

简介:

文| 谷歌开发技术专家 (GDE) 杨波 (Alpha)

随着 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 功能。

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 开发的,当然最多的就是游戏啦!

环境准备

1. Android Studio 2.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. Error:Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForDebug'
  2.  
  3. > 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 已经准备好了,着手自己的开发计划吧!





作者:Alpha Yang
来源:51CTO
目录
相关文章
|
6月前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
418 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
6月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
155 3
|
4月前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统架构差异及其对开发者的影响
本文旨在通过对比分析iOS和Android两大移动操作系统的系统架构,探讨它们在设计理念、技术实现及开发者生态方面的差异。不同于常规摘要仅概述内容要点,本摘要将简要触及核心议题,为读者提供对两大平台架构特点的宏观理解,铺垫
|
5月前
|
前端开发 JavaScript API
惊呆了!这些前端技巧竟然能让你的网站支持AR/VR体验!
【10月更文挑战第31天】在数字化时代,用户对网页交互体验的要求日益提高,传统二维网页已难以满足需求。本文介绍如何利用前端技术,特别是Three.js,实现AR/VR体验,提升用户满意度和网站价值。通过示例代码,展示如何创建简单的3D场景,并探讨AR/VR技术的基本原理和常用工具,帮助开发者打造沉浸式体验。
318 6
|
5月前
|
Go vr&ar 图形学
重塑体验:AR/VR技术在游戏与娱乐行业的创新应用
【10月更文挑战第29天】本文探讨了AR/VR技术如何改变游戏与娱乐行业,介绍了AR和VR的基本概念及其在游戏和娱乐中的应用实例,包括《精灵宝可梦GO》的AR开发和VR视频播放器的实现代码,并展望了未来的发展趋势。
440 2
|
5月前
|
安全 Java Linux
深入解析Android系统架构及其对开发者的意义####
【10月更文挑战第21天】 本文旨在为读者揭开Android操作系统架构的神秘面纱,探讨其如何塑造现代移动应用开发格局。通过剖析Linux内核、硬件抽象层、运行时环境及应用程序框架等关键组件,揭示Android平台的强大功能与灵活性。文章强调了理解Android架构对于开发者优化应用性能、提升用户体验的重要性,并展望了未来技术趋势下Android的发展方向。 ####
129 0
|
6月前
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。
|
7月前
|
5G 测试技术 语音技术
5G赋能沉浸式体验:VR/AR时代的网络基石
5G赋能沉浸式体验:VR/AR时代的网络基石
193 1
|
7月前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
642 3
|
7月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
90 3

热门文章

最新文章