在低端设备中支持 ARKit?

Support ARKit in lower end devices?

在 Apple 演示中,他们说如果不支持 ARWorldTrackingConfiguration,我们可以使用较小的 AROrientationTrackingConfiguration(以前称为 ARSessionConfiguration)。

但是当我在 A8 设备 (iPad mini 4) 上尝试此操作时,是否让 ARWorldTrackingConfiguration() 失败没有区别。跟踪根本不起作用。

if ARWorldTrackingConfiguration.isSupported {
    let configuration = ARWorldTrackingConfiguration()
    sceneView.session.run(configuration)
}
else {
    sceneView.session.run(AROrientationTrackingConfiguration())
}

如果A8不支持ARKit,支持AROrientationTrackingConfiguration()有什么意义?

我想 Apple 以虚拟方式为不支持 ARKit 的设备实现了此接口,以便在应用程序中使用 ARKit 时不会使它们崩溃,并让它 运行 具有比 A9+ 设备更少的功能。

如果您想支持更多的设备,8th Wall XR 就是您想要的库。它比最新的 iOS 支持更多的设备。如果您决定让您的应用进入该细分市场,则相同的代码也适用于 Android。

所有 ARKit 仅支持 A9 及更高版本,包括 AROrientationTrackingConfiguration。正如他们在 ARKit docs...

顶部所说的那样

Important ARKit requires an iOS device with an A9 or later processor.

To make your app available only on devices supporting ARKit, use the arkit key in the UIRequiredDeviceCapabilities section of your app's Info.plist. If augmented reality is a secondary feature of your app, use the isSupported property to determine whether the current device supports the session configuration you want to use.

因此,您确实可以制作一个 iOS 11 应用程序,该应用程序仅在 iOS 11 设备的子集上可用。在 UIRequiredDeviceCapabilities 中要求某些内容会使 App Store 不会在您不支持的设备上提供您的应用程序,并使 iTunes 拒绝安装该应用程序。

(是的,看起来 Apple 花了一些时间才把他们的故事说清楚。在 WWDC 上,他们似乎支持在较小的设备上进行 3DOF 跟踪,但现在你甚至需要 A9。)


那么 AROrientationTrackingConfiguration 现在有什么意义呢?

对于某些类型的应用,当当前条件不允许 6DOF 时,从世界跟踪 (6DOF) 退回到仅方向跟踪 (3DOF) 可能是有意义的。对于将虚拟对象放在桌子上的应用程序来说,这没有多大意义,但如果你只是将 space 入侵者放在空中让你的玩家射击,或者使用 AR 在天空中覆盖星座,失去 6DOF 并不会破坏体验。