swift - 我可以使用 ARKit 一次跟踪 4 张以上的图像吗?

标签 swift augmented-reality arkit arcore realitykit

开箱即用,很明显 ARKit 不允许同时跟踪超过 4 个图像。 (您可以“跟踪”比这更多的标记,但一次只能运行 4 个)。请参阅this question了解更多详情。

但是,我想知道是否有可能的解决方法。比如在计时器上添加和删除 anchor ,或者获取位置信息,然后在没有 ARKit 的情况下显示相应的模型等。我对 Swift 的了解相当有限,所以我还没有太多的运气进行实验。任何正确方向的建议或指示都会有所帮助。

相比之下,根据documentation,Android 版 ARCore 的限制为 20。 。我还亲自测试过在 iPhone 上跟踪超过 4 个标记的基于 Web 的库。我还相信我在某处读到过,Nintendo DS 的某些变体能够跟踪超过 4 个标记。由于硬件限制,这不可能是不可行的。

最佳答案

ARKit 5.0

今天的答案是肯定的,可以。 Apple 告诉开发者现在可以检测最多 100 张图像 at a time在 WWDC 2021 上宣布的 ARKit 5.0 中。让我们来看看。

ARKit 4.0

ARKit 4.0 中没有解决方法可以使用 ARImageAnchor 同时跟踪超过 4 个图像。 session 内的子类 ARImageTrackingConfiguration() 。我应该说,尽管 ARKit 4.0 中场景中跟踪图像的总数最多可达 100 个,但这种限制仍然有效。

You can read comments in ARConfiguration class if you choose Jump to Definition option.

enter image description here

我相信这个功能是由库比蒂诺软件工程师限制的,而不是偶尔。 ARImageAnchor子类继承自ARAnchor父类并符合ARTrackable协议(protocol),因此它不仅跟踪静态图像,还跟踪移动图像(例如汽车车身上的 Logo )。因此,如果您跟踪超过 4 个图像 - 它是高度 CPU/GPU 密集型的(最臭名昭著的耗尽手机电池的事情),因为您的设备必须检测和跟踪多个不同的对象。

我认为使用较新的 ARKit 4.0 可以同时跟踪 4 个以上的图像。 版本可以在相当强大的 5nm devices 上运行,就像 iPhone 12,我们将在今年秋天看到。

Thus, Apple software engineers sacrificed apps functionality for the sake of a robust AR experience.

附注

将 ARCore 与 ARKit 进行比较是不正确的,因为这些框架的内部工作原理不同,尽管它们具有相似的基本原理 - 例如世界跟踪< strong>场景理解渲染阶段。除了上述之外,我应该说 ARCore 比 ARKit 具有更适度的功能,这使得 ARCore 对于 CPU 计算来说更加“轻量级”(尽管我知道最后一句话听起来很主观)。

关于swift - 我可以使用 ARKit 一次跟踪 4 张以上的图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978435/

相关文章:

android - Android 增强现实入门

ios - 在 UITableView 之上为 UIView 添加阴影

ios - 对象未在 TableView 中使用新的 Realm 数据进行更新

ios - UITextDropDelegate willPerformDrop 没有被调用

ios - ARKit – 如何为大环境生成世界地图?

c# - 如何在 C# 中定义全息坐标系?

ios - 来自 .dae 的具有视频纹理的 SCNNode 不规则平面

ios - 是否可以像在 Vuforia 中那样在 ARKit 中跟踪对象?

ios - 旋转文本 MeshResource 使其不会被镜像

swift - 无法将 firebase 导入到我的 swift 项目中