随着,今年苹果在6月的WWDC 2017上发布的ARKit,谷歌也在前不久(8月29日),发布了用于Android平台的AR SDK——ARCore。这弥补了AR在Android市场上的空缺,让无数Android用户激动不已,要知道Android拥有超过20亿活跃设备,如果说ARKit是苹果AR的起点,那么说ARCore掀起了移动AR市场的狂潮,ARCore的横空出世意味着AR进入手机大群体用户的生活成为可能。
大约3年前,Google曾发布一个Tango AR,而ARCore也可以看做是Tango的升级版本。据了解,目前Google ARCore只支持Google Pixel和Samsung Galaxy S8两种型号的设备,谷歌表示,他们正在积极与三星、华硕、LG、华为等厂商开展合作,预计今年11月份,将会有超过1亿的Android用户可以访问ARCore的应用程序。
AR今年还只是起步阶段,有很多权威机构预测2018年将是AR技术快速发展的一年。
要理解ARCore的工作原理,首先需要理解以下的物理概念:
ARCore和Tango两者的性能都很强大,但最突出的差别是对硬件的要求,ARCore不需要额外的硬件就能在Android上运行,而Tango需要专属的定制硬件联想PHAB 2 PRO或华硕Zenfone AR上才能运行,这两款硬件产品的处理器配置低、巨大的边框设计和不良的电池寿命让用户牺牲了很多体验。在这一点上,ARCore比Tango升级不少。
ARKit是2017年6月6日,苹果发布iOS11系统所新增框架,它能够帮助我们以最简单快捷的方式实现AR技术功能。为了体验ARKit的新功能,笔者特意将相关环境做了升级。随着相关模型的完善,以及开发示例的完善,相信ARKit一定能加强app的相关体验。 ARCore与ARKit对比有如下的相同点和异同点:
ARKit可以将AR应用程序运行在任何具有A9处理器的iOS 11系统以上,这意味着任何iPhone 6S或更高版本或任何iPad Pro都将能运行这些AR应用程序,但是对Android来说,由于不同厂商的手机型号会有兼容性的问题以及摄像头的不同,这在很大程度上限制ARCore在Android的推广,为此,Google还需做大量的工作。
ARCore 被设计用来支持数量广大的 Android 设备,要求系统不低于 Android N。在当前,主要支持Google Pixel/Pixel X和Samsung Galaxy S8 (SM-G950U, SM-G950N, SM-G950F, SM-G950FD, SM-G950W, SM-G950U1)。
安装版本 2.3 或更高的 Android Studio,内含版本 7.0(API 等级 24)或更高的 Android SDK Platform。并且需要使用上面提到的能支持 ARCore 的 Android 设备。开发AR你还需要具备OpenGLOpenGL官网相关的知识。
由于AR用到了很多的传感器,所以模拟器是不支持测试的。要测试开发的程序,启用开发者选项,启用 USB debugging,然后在设备上安装 ARCore Service。当然,读者可以使用arcore体验apk。
打开示例项目: 在 Android Studio 中,找到 /samples/java_arcore_hello_ar,并打开 HelloAR 示例项目。示例项目依赖于特定版本的软件,如 Gradle 和 Android SDK 等。如果所需的依赖项未能安装,Android Studio 将请求在您的开发机上对其进行下载和安装。然后点击运行即可。
随着设备的移动,应用会自动侦测到水平表面,并绘制出棱形网格。点击网格即可在平面上放置 Android 机器人即可完成移动。之后,您可以通过 “添加为依赖项” 的方式,将 ARCore AAR Library 整合至现有的项目中。您的应用的 minSDKVersion 必须为 19 或更高。
Unity环境下使用ARCore需要如下的环境支持:
创建项目
Google为了扩大AR的使用范围,占领市场,AR 引入Web,认为其是“AR未来的关键组成部分”, 并发布了两个实验性的浏览器——以AR为重点的Chromium浏览器版本:一个是在Android的基础上,可使用ARCore的浏览器;一个是基于iOS,可使用ARKit的浏览器。
今天的 Web 上并没有适用于 AR 的标准,开发者们可以使用网络工具进行实验,利用 AR 来增强网络体验,手段包括 Java 代码库、three.ar.js 以及适用于 ARCore on Android 和 ARKit on iOS 的试验型浏览器等。
⚠ 请注意:WebARonARCore 和 WebARonARKit 不是全功能的网络浏览器。它们基于的 Java API 或是不够标准,或是不在标准化路径上。它们的意义仅限于供网络开发者来完成自己的实验。
请遵循下面链接中的指令来在您所选择的平台上下载并安装应用: WebARonARCore (Android, https://github.com/google-ar/WebARonARCore) WebARonARKit (iOS, https://github.com/google-ar/WebARonARKit)
下面的示例要求 WebARonARCore 或 WebARonARKit,使用 three.ar.js 进行搭建,three.ar.js 是为 three.js 所准备的 helper 库: SpawnAtCamera (https://google-ar.github.io/three.ar.js/examples/spawn-at-camera.html) SpawnAtSurface (https://google-ar.github.io/three.ar.js/examples/spawn-at-surface.html) Reticle (https://google-ar.github.io/three.ar.js/examples/reticle.html) Boilerplate (https://googlear.github.io/three.ar.js/examples/boilerplate.html)
想要为 WebARonARCore 和 WebARonARKit 搭建属于自己的 AR 体验,请遵循 three.ar.js的操作指引: https://github.com/google-ar/three.ar.js#threearjs