影音/11.83MB
arcore是由谷歌推出的一款对标苹果ARKit的AR平台,软件全称也叫做Google play services for ar,旨在帮助开发者构建AR应用,可以将虚拟内容,通过手机摄像头,与看到的现实世界整合,理解和跟踪它相对于现实世界的位置。借助ARCore和兼容的移动设备,开发者可允许你通过智能手机感知3D动画,需要注意的是这个软件是构建增强现实应用的 Andriod SDK,这是开发人员使用的系统组件,在桌面不可见。
另外开发者使用arcore软件将可打造全新的增强现实体验,让数字世界与现实世界无缝融合,变革工作和游戏的未来。当然如果你只是普通的用户,也是可以使用这个软件的,你只需要装在你手机上(支持的设备机型)它可以准确感知手机的位置和姿态,并改变显示的虚拟物体的位置和姿态,有需要的用户可以来本站下载使用。
arcore是 Google 的增强现实体验构建平台。ARCore 利用不同的 API 让手机能够感知其环境、理解现实世界并与信息互动。一些 API 可用于 Android 和 iOS,以实现共享 AR 体验。
ARCore 使用三个主要功能将虚拟内容与通过手机摄像头看到的现实世界整合:
1、借助动作跟踪,手机可以了解和跟踪它相对于世界的位置。
2、借助环境理解功能,手机可以检测各类表面(例如地面、咖啡桌或墙壁等水平、垂直和倾斜表面)的大小和位置。
3、借助光估测功能,手机可以估测环境当前的光照条件。
从本质上讲,ARCore 在做两件事:在移动设备移动时跟踪它的位置和构建自己对现实世界的理解。
ARCore 的运动跟踪技术使用手机的相机来识别有趣的点(称为特征点),并跟踪这些点随着时间的变化。结合这些点的移动和手机惯性传感器的读数,ARCore 可以在手机移动时确定其位置和方向。
除了确定关键点外,ARCore 还会检测平坦的表面(例如桌子或地面),并估测周围区域的平均光照强度。这些功能相结合,让 ARCore 可以构建自己对周围世界的理解。
借助 ARCore' 对现实世界的理解,您能够以一种与现实世界无缝集成的方式放置对象、注释或其他信息。您可以将一只打盹的小猫放在咖啡桌的一角,或者利用艺术家的生平信息为一幅画添加注释。移动跟踪意味着您可以移动和从任意角度查看这些物体,即使您转身离开房间,当您回来后,小猫或注释也会在您离开时所处的位置。
如需开始在 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 支持以下设备(如下图)
后来扩大了其它设备的支持(如下图)
v1.39.232070593版本
面向AR的Google Play服务会在符合条件的设备上自动安装和更新,这样Google Play商店中具备AR功能的应用日后无需另外下载和安装任何补充内容,即可正常运行。
此版本的新变化:
支持的设备的更新列表。