游戏简介
Google Play Services for AR 是谷歌面向安卓系统打造的官方服务框架。该软件具备极为强大的实用功能,用户只需开启软件,就能自由下载谷歌的各类软件,涵盖游戏、小说、音乐、影视等众多类型。而且,软件的界面设计极为简约,所有功能清晰明了,给用户带来十分出色的使用体验。
此外,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版本
修复了一些小错误并进行了改进。安装或更新到最新版本即可查看!