ARCore 的新变化

ARCore 中的新显著变更。

ARCore v1.42.0 中的新功能

在 Unity 版 Geospatial Creator 中贴靠图块

ARGeospatialCreatorAnchor Editor Inspector 面板中添加了“Snap to Tile”按钮。此按钮可将“地形”或“屋顶”锚点的“仅限编辑器”海拔高度值设置为锚点当前纬度和经度处的 3D 图块几何图形的顶部。请注意,此属性不会影响运行时的行为。这有助于调整锚点在编辑器中的位置,以匹配其在运行时的位置。

ARCore v1.41.0 中的新功能

Geospatial Creator API

Geospatial Creator for Unity 现在支持在编辑器模式下创建和操控 Geospatial Creator 对象。Geospatial Creator API 指南介绍了这些新推出的类和 API。

AR Foundation 版本 5.x 支持(Beta 版)

ARCore Extensions for Unity 的 AR Foundation 现在支持 AR Foundation 版本 5.x。如需将现有项目迁移到 AR Foundation,请参阅迁移指南

ARCore v1.40.0 的新变化

iOS 上的场景语义

Scene Semantics API 现在可在 ARCore SDK for iOS 以及面向 iOS 平台的 ARCore Extensions for Unity AR Foundation 中使用。借助 Scene Semantics API,开发者能够实时了解用户周围的场景,从而将像素标记为 11 类户外组件。如需了解详情,请参阅场景语义简介

在 Geospatial Creator for Unity 中搜索地图注点

Geospatial Creator for Unity 现在支持通过文本搜索定位摄影 3D 图块视图。如需了解详情,请参阅在 Geospatial Creator 中搜索地图注点

ARCore v1.39.0 中的新功能

此版本没有新功能。

ARCore v1.38.0 中的新功能

此版本没有新功能。

ARCore v1.37.0 中的新功能

场景语义

Scene Semantics 提供有关周围场景的更丰富细节,可让您更轻松地了解用户周围的世界。Scene Semantics 会对相机图像 Feed 运行机器学习模型,并提供语义图像,其中每个像素对应 11 个户外概念标签之一。

如需了解详情,请参阅场景语义简介semantics_java 示例应用

街景几何图形

Streetscape Geometry 是全新的 ARCore Geospatial API,可在启用 Geospatial API 后提供用户周围区域中建筑物和地形的几何形状。

Android (Kotlin/Java)

请参阅 Streetscape Geometry 开发者指南 (Kotlin/Java)。此外,geospatial_java 示例应用已更新,现在包含 Streetscape Geometry。

Android NDK (C)

如需了解详情,请参阅街景几何图形开发者指南 (C)

Unity(AR 基础)

如需了解详情,请参阅街景几何图形开发者指南 (Unity)

iOS

如需了解详情,请参阅街景几何图形开发者指南 (iOS)。此外,GeospatialExample 应用也经过了更新,添加了 Streetscape Geometry。

屋顶锚点

屋顶锚点是一种新的地理空间锚点类型,可帮助您将内容锚定到屋顶。

Android (Kotlin/Java)

请参阅地理空间锚点 (Java)。此外,geospatial_java 示例应用也已更新为包含 Rooftop 锚点。

Android NDK (C)

如需了解详情,请参阅地理空间锚点 (C)

Unity(AR 基础)

如需了解详情,请参阅地理空间锚点。此外,Geospatial 示例已更新为包含 Rooftop 锚点。

iOS

如需了解详情,请参阅地理空间锚点 (iOS)。此外,GeospatialExample 应用也已更新,以包含 Rooftop 锚点。

地理空间深度

在具有 VPS 覆盖的区域的 ARCore 会话中同时启用 Depth API 和 Streetscape Geometry 模式后,可以使用 Streetscape Geometry 改进生成的深度图像。Streetscape Geometry 已集成到生成的每张深度图像中,覆盖范围为 65.535 米。调用 Depth API 时无需进行任何更改,即可看到该优势。

Android (Kotlin/Java)

如需了解详情,请参阅地理空间深度 (Java)

Android NDK (C)

如需了解详情,请参阅地理空间深度 (C)

Unity(AR 基础)

如需了解详情,请参阅地理空间深度 (C)

iOS

Scene Semantics 目前不适用于 iOS。

Vulkan 渲染支持

ARCore 现在通过 AHardwareBuffer 公开相机图像来提供 Vulkan 渲染支持。您可以通过将此硬件缓冲区绑定到 VkImage 来使用该硬件缓冲区。

如需了解详情,请参阅使用 Vulkan 渲染您的 ARCore 应用hello_ar_vulkan_c 示例应用

Android (Kotlin/Java)

Android NDK (C)

Unity(AR 基础)

Vulkan 渲染目前不适用于使用 AR Foundation 的 Unity。

电子图像防抖技术 (EIS)

您可以将 ARCore 配置为使用电子图像稳定技术,该功能可平滑相机帧,从而提供更流畅的用户体验。

如需了解详情,请参阅启用电子图像防抖功能hello_eis_kotlin 示例应用

Android (Kotlin/Java)

Android NDK (C)

Unity(AR 基础)

EIS 目前不适用于使用 AR Foundation 的 Unity。

iOS

EIS 目前不适用于 iOS 设备。

ARCore 异步 API

此版本引入了新的 ARCore 异步 API,可遵循 Future 和 Promise 范式,改进处理异步操作时的工效学设计。

Android (Kotlin/Java)

Android NDK (C)

Unity(AR 基础)

iOS

ARCore v1.36.0 中的新功能

iOS 上的 Swift Package Manager 支持

ARCore SDK for iOS 现已正式支持 Swift Package Manager。请参阅在 iOS 应用中启用 AR,了解如何使用 Swift Package Manager 与 ARCore 集成。

ARCore v1.35.0 中的新功能

地理空间姿势的准确性用偏航角取代朝向

现在,所有地理空间姿势都公开了偏摆旋转的朝向准确度,取代了朝向精确度。

其他更改和更新

如需了解其他变更、bug 修复和性能提升,请参阅版本说明:

ARCore v1.34.0 中的新功能

检查设备当前位置是否提供地理空间功能

Geospatial API 现在可以在运行时检查视觉定位系统 (VPS) 在指定的水平位置是否可用。此 API 可在没有活动 AR 会话的情况下使用:例如,仅在 VPS 可用时显示“进入 AR”按钮。

地理空间姿势方向

地理空间姿态现在会在 3D 空间中暴露其朝向。

地理空间姿势转换

地理空间姿势现在可以与世界空间 (AR) 姿势相互转换。

如需从 AR 姿势中获取地理空间姿势,请执行以下操作:

如需从地理空间姿势中获取 AR 姿势,请执行以下操作:

从这些函数获得的地理空间姿势的方向值设为零。而应使用以下内容:

其他更改和更新

如需了解其他变更、bug 修复和性能提升,请参阅版本说明:

ARCore v1.33.0 中的新功能

新的云锚点端点

  • 如需使用云锚点,您现在必须启用 ARCore API,而不是旧版 ARCore Cloud Anchor API,后者现已废弃。为了支持旧版应用,您可以在进行转换时同时启用这两种版本。使用 ARCore SDK 1.32.0 及更低版本构建的应用以旧版 API 为目标平台,而使用 ARCore SDK 1.33.0 及更高版本构建的应用以新 API 为目标平台。请注意以下几点:
    • 新 API 使用域名 arcore.googleapis.com,而不是 arcorecloudanchor.googleapis.com
    • 如果您使用的 API 密钥受 API 限制,您必须允许 ARCore API。
    • 如果您从后端向 ARCore Cloud Anchor Management API 发送请求,您还必须在启用 ARCore API 后将域名更改为 arcore.googleapis.com
    • 旧版 API/端点在 2023 年 8 月之前将继续获得支持。
    • 如需了解更多详情,请参阅 ARCore 1.33 云锚点端点变更

地形锚点

其他更改和更新

如需了解其他变更、bug 修复和性能提升,请参阅版本说明:

ARCore v1.32.0 中的新功能

此版本没有新功能。

适用于 Android 的 Android 和 Unity (AR Foundation)

  • ARCore 的 targetSdkVersion 已更新至 Android API 级别 32。如果您的应用没有指定 targetSdkVersion,应用的 targetSdkVersion 将由于合并清单而变为 32。
    • Android SDK:在项目的 build.gradleAndroidManifest.xml 中指定 targetSdkVersion 将替换 ARCore 的 targetSdkVersion 值。
    • AR Foundation for Android:在 Unity 项目的 Project Settings > Player > Android > Other Settings 中指定目标 API 级别将替换 ARCore 的 targetSdkVersion 值。

其他更改和更新

如需了解其他变更、bug 修复和性能提升,请参阅版本说明:

ARCore v1.31.0 中的新功能

ARCore Geospatial API

新的 ARCore Geospatial API 利用来自 Google 地球 3D 模型的数据和来自 Google 地图街景图像的数据,让您的应用能够提供基于地理位置的沉浸式增强现实体验。

请参阅 ARCore Geospatial API 简介,获取针对具体平台的开发者文档并开始使用新的 Geospatial API。

远距离拍摄

ARCore Depth API 现已经过优化,支持更远距离的深度传感功能,从而扩大了可表示的深度观测范围。深度图像全部采用 16 位,最大范围为 65535 毫米。之前只填充了 13 位,上限为 8191 毫米。

请参阅深度更改,获取特定于平台的开发者文档,并了解对 Depth API 的更改。

针对具体平台的说明

Android

全新 ARCore Geospatial API
  • Java

    • Earth 提供在地球相对坐标中的定位功能。
    • Earth.Earthstate 描述 Earth 的当前状态,包括其 TrackingState
    • GeospatialPose 描述了相对于地球的特定位置、海拔高度和罗盘方向。
  • C

    • ArEarth 提供地球相对坐标中的定位功能。
    • ArGeospatialPose 描述了相对于地球的特定位置、海拔高度和罗盘方向。
更新了 ARCore Depth API
  • Java

    • Depth API 函数调用已发生变化:
      • Frame.acquireDepthImageFrame.acquireDepthImage16Bits
      • Frame.acquireRawDepthImageFrame.acquireRawDepthImage16Bits
      • 两次调用的输出图片格式都已从 android.graphics.ImageFormat#DEPTH16 更改为 android.hardware.HardwareBuffer#D_16
      • 深度仍以毫米为单位的 16 位整数表示,但现在所有 16 位都用于表示深度,因此可表达的最大范围从 8191 毫米到 65535 毫米。
    • 废弃了 Depth API 函数调用 Frame.acquireDepthImageFrame.acquireRawDepthImage。请改用 Frame.acquireDepthImage16BitsFrame.acquireRawDepthImage16Bits
  • C

    • Depth API 函数调用已发生变化:
      • ArFrame_acquireDepthImageArFrame_acquireDepthImage16Bits
      • ArFrame_acquireRawDepthImage - ArFrame_acquireRawDepthImage16Bits
      • 两个调用的输出图片格式都已从 AR_IMAGE_FORMAT_DEPTH16 更改为 AR_IMAGE_FORMAT_D_16
      • 深度仍以毫米为单位的 16 位整数表示,但现在所有 16 位都用于表示深度,因此可表达的最大范围从 8191 毫米到 65535 毫米。
    • 废弃了 Depth API 函数调用 ArFrame_acquireDepthImageArFrame_acquireRawDepthImage。请改用 ArFrame_acquireDepthImage16BitsArFrame_acquireRawDepthImage16Bits

Unity(AR 基础)

全新 ARCore Geospatial API:

  • AREarthManager 提供地球相对坐标中的定位功能。
  • GeospatialPose 描述相对于地球的特定位置、海拔高度和罗盘方向。
  • ARGeospatialAnchor 用于为场景中的游戏对象提供锚点,并在相对于地球的位置和方向上指定锚点。

iOS

全新 ARCore Geospatial API:

其他变更

如需了解其他变更、bug 修复和性能提升,请参阅版本说明:

ARCore v1.30.0 中的新功能

此版本没有新功能。

Android

  • 使用 @NonNull@Nullable 对 API 返回值添加了注解。
  • 将用于构建示例的构建工具版本更新为:Gradle 至 7.0.2,将 Android Gradle 插件版本更新为 7.0.4。现有的 ARCore 应用需要升级这些工具。如需了解新功能、已知问题和不兼容信息,请参阅关于 Android Gradle 插件的 Android 文档

Unity(AR 基础)

iOS

  • 修复了各种问题并提升了性能。

ARCore v1.29.0 中的新功能

此版本没有新功能。

Android

Unity(AR 基础)

  • ARCore Extensions 软件包现在依赖于 ARKit XR 插件,以确保安装的 AR Foundation 版本与 ARKit XR 插件版本兼容。这修复了在 Unity 2019.x 上安装 ARCore 扩展和启用 ARKit XR 插件时出现的编译错误。
  • ARCore Extensions 项目设置已从 Project Settings > XR > ARCore Extensions 移至 Project Settings > XR Plug-in Management > ARCore Extensions
  • ARCoreExtensionsConfigARCoreExtensionsCameraConfigFilterARCoreRecordingConfig 已从 Create > XR > ARCore Extensions 移至 Create > XR 菜单。

iOS

  • 修复了各种问题并提升了性能。

填写版本说明

ARCore v1.28.0 中的新功能

ARCore v1.27.0 中的新功能

此版本没有新功能。如需了解各种 bug 修复和性能改进,请参阅以下版本说明。

除了修复了各种 bug 之外,此版本还包含以下内容。

Kotlin 示例应用

ARCore v1.26.0 中的新功能

此版本增加了以下重要变更:

其他更改和更新

请参阅以下版本说明,了解其他 bug 修复和其他破坏性更改。

ARCore v1.25.0 中的新功能

此版本没有新功能。如需了解各种 bug 修复和性能改进,请参阅以下版本说明。

ARCore v1.24.0 中的新功能

此版本增加了以下重要变更:

  • 新增了 Raw Depth API,可提供无需图像空间过滤的深度图像
  • 向 Recording & Playback API 添加自定义数据轨迹录制功能
  • 能够执行深度点击测试

原始深度

Raw Depth API 提供相机图像的深度数据,该图像具有比完整 Depth API 数据更高准确度,但并不总是覆盖所有像素。原始深度图像及其匹配的置信度图像可以进一步处理,从而允许应用仅针对其各个用例使用准确度足够高的深度数据。

开发者指南:

自定义航迹记录

借助 Recording & Playback API 中新的自定义数据跟踪记录功能,您可以在录制期间向 ARCore 帧添加自定义数据,并在播放期间从帧中检索相同的数据。

开发者指南:

深度点击测试

以前,点击测试只能在检测到的平面上进行,因此定位范围仅限于较大的平坦表面。深度点击测试利用平滑和原始深度信息来提供更准确的点击结果,即使在非平面和低纹理表面上也是如此。

开发者指南:

其他更改和更新

请参阅以下版本说明,了解其他 bug 修复和其他破坏性更改。

ARCore v1.23.0 中的新功能

待支持双摄像头

我们将在未来几周内推出对双摄像头的支持。如需了解详情,请参阅支持的设备页面。

新的调试工具

通过发送广播 intent,开发者可以启用以下功能:

托管和解析云锚点

使用 ARCore SDK 1.11.0 或更低版本构建的支持 AR 的应用无法再托管或解析云锚点。

使用 ARCore SDK 1.12.0 或更高版本构建的应用不受影响。他们对 ARCore Cloud Anchor API 的使用受弃用政策的约束。

其他更改和更新

如需了解其他 bug 修复和其他重大更改,请参阅以下版本说明。

ARCore v1.22.0 中的新功能

此版本为 ARCore Extensions for AR Foundation 添加了新的 Recording and Playback APICamera Config Filter API。如需了解详情,请参阅 ARCore Extensions 完整版本说明

其他更改和更新

如需了解其他 bug 修复和其他重大更改,请参阅以下版本说明。

ARCore v1.21.0 中的新功能

此版本新增了适用于 AndroidAndroid NDKUnity 的 Recording API 和 Playback API。

录制和播放

借助 Recording API 和 Playback API,您可以在给定环境中录制一次视频和 AR 数据,并使用该内容替换实时摄像头会话以进行测试。ARCore 会将录制的会话保存到设备上包含多个视频轨道和其他杂项数据的 MP4 文件中。然后,您可以让自己的应用使用这些数据代替实时相机会话。这样,您就可以无限期地重放该内容以尝试不同的 AR 效果,而无需返回现场。

若要了解详情,请访问:

ARCore v1.20.0 中的新功能

此版本增加了以下重要变更:

新增对永久性云锚点的支持

在 ARCore v1.20 之前,云锚点只能在首次托管后最长 24 小时内进行解析。借助永久性云锚点,您现在可以创建存留时间 (TTL) 介于 1 到 365 天的云锚点。您还可以使用 Cloud Anchor Management API 在托管锚点之后延长其生命周期。

使用永久性云锚点需遵守新的云锚点弃用政策

其他更改和更新

如需了解其他 bug 修复和其他重大更改,请参阅以下版本说明。

ARCore v1.19.0 中的新功能

此版本增加了以下重要变更:

即时展示位置

借助 Instant Placement API,用户可以将 AR 对象放置在屏幕上,而无需等待 ARCore 检测表面几何图形。随着用户在环境中不断移动,对象的放置位置也会实时优化。ARCore 在放置 AR 对象的区域检测到正确的姿势后,白色对象会自动更新为符合姿势要求的正确姿势,并变为不透明。

以下片段显示了现实世界桌上的一个虚拟 Android 小人。这个图形是白色的,放在第一次放置时要小得多。在 ARCore 优化场景尺寸计算后,人物会跳到更准确的位置。这可能会导致对对象的感知“大小”有所不同。

若要了解详情,请访问:

ARCore v1.18.0 中的新功能

此版本增加了以下重要变更:

Depth API

支持深度的设备上,Depth API 使用支持 ARCore 的设备的 RGB 摄像头或主动深度传感器(如果有)来创建深度图。然后,您可以使用深度图提供的每像素深度,使虚拟对象准确显示在真实对象的前面或后面,从而实现沉浸式、逼真的用户体验。

例如,以下图片显示了现实空间中的虚拟 Android 小人,门旁边有一个后备箱。Depth API 会正确地遮盖后备箱边缘后面的人物。

若要了解详情,请访问:

ARCore v1.17.0 中的新功能

ARCore SDK for Android 中值得注意

另请参阅 Android SDK for Android 完整版本说明

ARCore SDK for Unity 中值得注意

另请参阅 ARCore SDK for Unity 完整版本说明

ARCore SDK for iOS 中值得注意

  • Cloud Anchors SDK 的二进制文件大小已显著减小。

  • 增强面现已支持位码。

另请参阅 ARCore SDK for iOS 完整版本说明

ARCore v1.16.0 中的新功能

ARCore SDK for AndroidSceneform SDK for Android 中值得注意

此版本增加了以下重要变更:

另请参阅:

面向 AR 基础的 ARCore Extensions 扩展中值得注意

此版本增加了以下重要变更:

  • AR Foundation 的 XRCameraConfiguration 通过一些方法扩展,让您能根据所需条件选择合适的摄像头配置。这些方法包括 GetTextureDimensions()GetFPSRange()GetDepthSensorUsages()。请阅读详细说明

  • Unity 2019.3.0f6 现在是推荐 ARCore Extensions 的最低版本。AR Foundation 3.1.0-preview.6 需要 Unity 2019.3 或更高版本。

  • Unity 现在在其跨平台 AR API 中使用术语“锚点”“云锚点”和“云锚点 ID”。ARCore 扩展程序的文档已更新以反映这一点。

另请参阅:

ARCore SDK for Unity 中值得注意

此版本增加了以下显著变更:

  • 大多数设备现在会返回其他受支持的摄像头配置,这些摄像头配置的 GPU 纹理分辨率低于设备的默认 GPU 纹理分辨率。(如需了解详情,请参阅支持 ARCore 的设备)。 这些更高的 GPU 分辨率可通过 ARCoreCameraConfigFilter API 获得。

另请参阅:

ARCore SDK for Unity 完整版本说明

ARCore v1.15.0 中的新功能

面向 AR 基础的 ARCore Extensions 扩展中值得注意

此版本增加了以下显著变更。

  • 添加了 CloudAnchors 示例,展示如何为 Android 和 iOS 创建共享 AR 体验。请参阅 AndroidiOS 说明。

  • Unity 2019.2.17f1 现在是推荐与 ARCore 扩展程序搭配使用的最低版本。

ARCore Extensions 扩展版本说明

ARCore SDK for Unity 中值得注意

此版本存在以下已知问题。

  • 使用 Android 9 和 USB 3 数据线时,Instant Preview 可能会冻结 Unity。若要解决此问题,请更新到 Android 10 或使用 USB 2 数据线。

  • 如果 Unity 的游戏视图分辨率过高,Instant Preview 可能无法在设备上显示。如需解决此问题,请在编辑器中降低 Unity 的游戏视图分辨率。

ARCore SDK for Unity 完整版本说明

其他更改

如需了解其他 bug 修复和其他重大更改,请参阅以下版本说明。

ARCore v1.14.0 中的新功能

此版本增加了以下显著变更。

ARCore v1.13.0 中的新功能

此版本增加了以下显著变更。

如需了解其他 bug 修复和其他重大更改,请参阅以下版本说明。

ARCore v1.12.0 中的新功能

此版本增加了以下更改:

  • iOS 新增增强面功能。如需了解详情,请参阅此概览quickstart开发者指南

  • 支持使用 ARCore Extensions for Unity 的 AR Foundation 构建 Android 应用以及云锚点。

  • 云锚点将出现以下变化:

    • 为遵守我们关于使用 ARCore SDK 1.12 或更高版本的最新隐私权要求,您必须在应用中以醒目的方式披露云锚点的使用,方法是在通知屏幕上添加以下文本和了解详情链接:“为了支持此会话,Google 将处理来自摄像头的视觉数据。”为此,您可以实现我们的云锚点示例应用中提供的推荐用户通知流程。

    有关详情,请参阅用户隐私要求

如需详细了解云锚点,请参阅:

ARCore v1.11.0 中的新功能

此版本增加了以下更改:

  • ARCore 服务已重命名为面向 AR 的 Google Play 服务。现在,该应用在 Google Play 设备上作为 Google Play 服务的一部分进行分发。

  • 支持的设备上,ARCore 的摄像头配置为以 60 fps 为目标,在配有深度传感器的设备上会优先使用深度传感器。您可以使用新的摄像头配置过滤器将摄像头捕获帧速率限制为 30 fps,阻止 ARCore 使用深度传感器,或根据这两个选项进行过滤。

如需详细了解相机配置,请参阅:

ARCore v1.10.0 中的新功能

此版本为 Android、Android NDK 和 Unity 的 Lighting Estimation API 添加了新的环境 HDR 光照估测功能。

这些 API 使用机器学习来分析输入的摄像头图像并估计环境光照。您可以使用此光照估测数据渲染极为逼真的光照,包括主方向光、阴影、环境光、镜面高光和虚拟物体上的反射。因此,虚拟内容让人感觉更真实。

若要了解详情,请访问:

ARCore v1.9.0 的新变化

ARCore SDK for Android 中的新功能

此版本新增了以下 API 和功能:

  • Scene Viewer 是一种沉浸式查看器,可让您在您的网站中实现 AR 体验。它可以让 Android 移动设备用户轻松地在其环境中放置和查看 Web 托管的 3D 模型并与之互动。

  • 新的增强图像功能:

    • ARCore 现在会跟踪移动的增强图像。动态图片的示例包括路过公交车上的广告,或用户转动手时握持的平面物体上的图片。

    • 检测到图像后,ARCore 能够继续跟踪图像的位置和方向,即使图像暂时移出摄像头视图也是如此。

    • 使用 AugmentedImage#getTrackingMethod() (Java) 或 ArAugmentedImage_getTrackingMethod() (NDK) 确定相机当前跟踪的增强图像 (FULL_TRACKING),还是根据其最后的已知位置 (LAST_KNOWN_POSE) 跟踪增强图像。

  • 现在,云锚点文档包含有关如何托管和解析锚点的更详细说明

填写版本说明

ARCore SDK for Unity 中的新功能

  • 新的增强图像功能:

    • ARCore 现在会跟踪移动的增强图像。移动图像的示例包括路过公交车上的广告,或当用户移动时拿着的平面物体上的图像。

    • 检测到图像后,ARCore 能够继续跟踪图像的位置和方向,即使图像暂时移出摄像头视图也是如此。

    • 借助新的 AugmentedImage.GetTrackingMethod() API,您的应用可以确定相机正在跟踪增强图像 (FullTracking),还是根据其最近一次的已知位置 (LastKnownPose) 跟踪增强图像。

  • 现在,云锚点文档包含有关如何托管和解析锚点的更详细说明

填写版本说明

ARCore SDK for iOS 中的新功能

填写版本说明