Google Play Services for AR手机版是谷歌针对安卓系统推出的一款服务框架,软件拥有非常强大的实用功能,用户只需要打开软件便可以随意谷歌的各种软件,游戏、小说、音乐、影视等等,并且软件的界面设计非常简约,所有功能一目了然,为用户带来非常出色的使用体验。
如需开始在 Android 上使用 ARCore,您可以运行 ARCore SDK 附带的 hello_ar_kotlin 或 hello_ar_java 示例应用。这些示例应用使用 OpenGL,这是一种用于渲染 2D 和 3D 矢量图形的编程接口。这些应用会显示检测到的所有平面,并允许用户点按平面来放置 3D 模型。

1、设置您的开发环境
安装 Android SDK Platform 7.0(API 级别 24)或更高版本的 Android Studio 3.1 版或更高版本。
2、打开示例项目
(1)在 Android Studio 中,克隆 ARCore SDK GitHub 代码库。
为此,您可以采用多种方式:
对于现有的 Android Studio 安装:
从 Git 菜单中选择 Clone。
在 Version control 下拉菜单中,选择 Git 作为版本控制系统。
在 URL 字段中,输入 ARCore GitHub 代码库的以下网址:
https://github.com/google-ar/arcore-android-sdk.git
(2)按如下方式打开一个示例项目(您必须明确打开一个项目才能构建并运行该项目)。
从 File 菜单中选择 Open。
在 arcore-android-sdk/samples 文件夹中,选择 hello_ar_kotlin 或 hello_ar_java 文件夹,然后点击 Open。
3、准备设备或模拟器
您可以在受支持的设备或 Android 模拟器上运行 AR 应用。您必须先在模拟器上更新 AR 服务的 Google Play 服务,然后才能运行该应用。
4、运行示例
确保您的 Android 设备已连接到开发机器,然后点击 Android Studio 中的 Run 。
Android Studio 将您的项目构建为可调试的 APK,安装该 APK,然后在您的设备上运行该应用。
如果适用于 AR 的 Google Play 服务缺失或已过期,系统可能会提示您安装或更新。选择 CONTINUE 可从 Google Play 商店安装它,或按照更新 AR 版 Google Play 服务中的说明手动更新该应用。
借助 hello_ar_java 应用,您可以在检测到的 AR 平面上放置一个三维 ARCore 典当。它通过 Android GL SurfaceView 实现,Android GL SurfaceView 用于渲染相机预览和基本 AR 对象,例如平面和锚点。可以在 com/google/ar/core/examples/java/common/samplerender 中找到 hello_ar_java 的示例渲染框架。

注意:hello_ar_java 中的生命周期方法与 OpenGL 应用中通常提供的生命周期方法不同。为确保您自己的应用的 AR 设置正确无误,请遵循 hello_ar_java 中的生命周期管理逻辑。
5、使用即时展示位置
借助 Instant Placement API,用户可以将 AR 对象置于屏幕上,而无需等待 ARCore 检测表面几何图形。随着用户继续在环境中移动,系统会实时优化对象放置位置。一旦 ARCore 能够在放置 AR 对象的区域中检测到正确的姿态,白色对象便会自动更新为姿态准确,并变为不透明。
hello_ar_java 中会自动启用 Instant Placement。点按屏幕上的齿轮图标,然后从下拉菜单中选择 Instant Placement。您应该已经选中 Enable Instant Placement 复选框。
点按屏幕以放置对象。在屏幕上显示全息对象后,请务必继续来回移动设备,以便 ARCore 可以获取关于周围环境的足够数据来准确锚定虚拟对象。
在深入了解 ARCore 之前,了解一些基本概念会很有帮助。这些概念共同说明了 ARCore 如何实现虚拟内容看起来就像是呈现在真实的表面上或附加到现实世界中的位置一样。
1、运动追踪
当您的手机在现实世界中移动时,ARCore 会通过一个称为同时定位和映射 (SLAM) 的过程来了解手机相对于周围世界的位置。ARCore 会检测捕获的摄像头图像中视觉上不同的特征(称为特征点),并使用这些点来计算其位置变化。这些视觉信息会与设备的 IMU 的惯性测量结果结合,一起用于估算摄像头在一段时间内相对于现实世界的姿势(位置和方向)。
通过将渲染 3D 内容的虚拟摄像头的姿势与 ARCore 提供的设备的摄像头姿势对齐,开发者能够从正确的角度渲染虚拟内容。渲染的虚拟图像可以叠加到从设备的相机获取的图像上,使虚拟内容看起来仿佛是现实世界的一部分。

2、环境理解
ARCore 会检测特征点和平面,从而不断提高对现实世界环境的理解。
ARCore 可以查找看起来位于常见水平或垂直表面(例如桌子或墙)上的成簇特征点,并将这些表面作为几何平面提供给您的应用。ARCore 还可以确定每个几何平面的边界,并将这些信息提供给您的应用。您可以使用这些信息将虚拟对象放在平坦的表面上。
由于 ARCore 使用特征点来检测平面,因此可能无法正确检测像白墙一样没有纹理的平坦表面。

3、深度理解
ARCore 可以使用受支持设备中的主 RGB 摄像头创建深度图,其中包含有关表面与给定点之间的距离的数据。您可以使用深度图提供的信息实现沉浸式逼真的用户体验,例如使虚拟对象与观察到的表面准确碰撞,或使虚拟对象出现在真实对象的前面或后面。
4、光估测
ARCore 可以检测其环境光线的相关信息,并为您提供给定摄像头图像的平均光强度和色彩校正。这些信息可让您在与周围环境相同的条件下照亮您的虚拟对象,从而提升其真实感。

5、用户互动
ARCore 利用点击测试来获取与手机屏幕相对应的 (x,y) 坐标(通过点按或您希望应用支持的其他任何互动提供),并将光线投影到摄像头的世界视图中,并返回该射线相交的所有几何平面或特征点以及该交点在现实世界空间中的姿态。这样,用户就可以选择环境中的对象或以其他方式与其互动。
6、定向点
借助定向的点,您可以将虚拟对象放置在倾斜的表面上。当您执行会返回特征点的点击测试时,ARCore 会查看附近的特征点,并使用这些特征点尝试估算给定特征点上表面的角度。然后,ARCore 会返回一个将该角度考虑在内的姿势。由于 ARCore 使用特征点聚类来检测 Surface 的角度,因此可能无法正确检测没有纹理的表面(例如白墙)。
7、锚点和可跟踪对象
姿态会随着 ARCore 改进其对自身位置和环境的理解而发生变化。当您想要放置一个虚拟对象时,您需要定义锚点,以确保 ARCore 可以跟踪对象随时间推移的位置。通常,您可以根据点击测试返回的姿势创建锚点,如用户互动中所述。
姿态会发生变化,这意味着 ARCore 可能会更新环境对象(例如几何平面和特征点)的位置。平面和点是一种特殊类型的对象,称为“可跟踪对象”。顾名思义,ARCore 会随着时间推移跟踪这些对象。您可以将虚拟对象锚定到特定的可跟踪对象,以确保即使在设备四处移动时,虚拟对象与可跟踪对象之间的关系也保持稳定。这意味着,如果您将一个虚拟的 Android 小雕像放在您的书桌上,即使 ARCore 稍后调整了与书桌关联的几何平面的姿态,Android 小雕像仍会看起来位于桌子上。
注意:为了降低 CPU 费用,请尽可能重复使用锚点,并分离不再需要的锚点。
8、增强图像
借助增强图像功能,您可以构建能够响应特定 2D 图像(例如产品包装或影片海报)的 AR 应用。当用户将手机的相机对准特定图片时,即可触发 AR 体验。例如,他们可以将手机的相机对准电影海报,让角色弹出并出镜。ARCore 还会跟踪移动图像,例如移动公交车侧的广告牌。
您可以离线编译图片以创建图片数据库,也可以从设备实时添加个别图片。注册后,ARCore 会检测这些图像以及图像的边界,并返回相应的姿态。
支持机型ARCore 可以在运行 Android 7.0 (Nougat) 及更高版本系统的多种符合资格的 Android 手机上使用。 在开发者预览版期间,ARCore 支持以下设备(如下图)

后来扩大了其它设备的支持(如下图)

1、GooglePlay服务还可以改善您的应用体验。它加快了离线搜索的速度,提供了更加身临其境的地图,并改善了游戏体验。
2、如果您卸载该软件,则应用可能无法运行。在没有获得谷歌公司认证的Android设备上,无法运行谷歌地图等谷歌应用。即使用户能够在手机上安装谷歌应用,运行时也会出现“闪退”或者手机会提示“已停止运行”现象而无法继续使用。
3、如果移动设备厂商要在设备谷歌的某种应用,比如Google地图,那么需要获得Google对其设备的GMS认证。
arcore是 Google 的增强现实体验构建平台。ARCore 利用不同的 API 让手机能够感知其环境、理解现实世界并与信息互动。一些 API 可用于 Android 和 iOS,以实现共享 AR 体验。
ARCore 使用三个主要功能将虚拟内容与通过手机摄像头看到的现实世界整合:
1、借助动作跟踪,手机可以了解和跟踪它相对于世界的位置。
2、借助环境理解功能,手机可以检测各类表面(例如地面、咖啡桌或墙壁等水平、垂直和倾斜表面)的大小和位置。
3、借助光估测功能,手机可以估测环境当前的光照条件。
v1.47.243160293版本
修复了一些小错误并进行了改进。安装或更新到最新版本即可查看!