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 Foundation)

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