2022 年 5 月(ARCore SDK 版本 1.31)更改为深度

本文档中列出的变更仅适用于使用 ARCore SDK 1.31 或更高版本编译的应用。使用旧版 ARCore 编译的应用不会受到影响。

在 2022 年 5 月 1.31 版中,ARCore 的最大深度范围已从 8.191 米升级到 65.535 米。Depth API 现在使用每像素全部 16 位来表示深度,而以前仅使用 13 位表示深度值。虽然在旧版 ARCore SDK 中使用以下方法的应用仍可使用之前的深度范围运行,但我们建议您在代码库中对其进行更新,以提供更好的功能。

针对具体平台的更改

Android (Kotlin/Java)

之前的方法名称和功能 新的方法名称和功能
最大范围 8.191 米 最大范围为 65.535 米
Frame.acquireDepthImage() Frame.acquireDepthImage16Bits()
Frame.acquireRawDepthImage() Frame.acquireRawDepthImage16Bits()
Image.getFormat() 返回 ImageFormat.DEPTH16 Image.getFormat() 返回 HardwareBuffer.D_16

Android NDK (C)

之前的方法名称和功能 新的方法名称和功能
最大范围 8.191 米 最大范围为 65.535 米
ArFrame_acquireDepthImage() ArFrame_acquireDepthImage16Bits()
ArFrame_acquireRawDepthImage() ArFrame_acquireRawDepthImage16Bits()
ArImage_getFormat() 返回 AR_IMAGE_FORMAT_DEPTH16 ArImage_getFormat() 返回 AR_IMAGE_FORMAT_D_16

Unity(AR 基础)

所有更改均由 AR Foundation 处理。使用 ARCore Extensions for AR Foundation 版本 1.31 或更高版本构建时,AROcclusionManager.TryAcquireEnvironmentDepthCpuImage 使用新的最大范围 65.535 米返回图像。