我正在寻找一种方法来检测何时空间跟踪在 ARKit 中“ working/not 工作”,何时 i.e 当 ARKit 具有足够的可视信息来启动 3d 空间跟踪时。
在我尝试过的其他应用中,如果 ARKit 无法从相机中获取足够的信息,则会提示用户使用 phone/camera 环顾四周以恢复空间跟踪。我什至看过带有进度条的应用程序,该进度条显示用户需要多得多的移动设备才能恢复跟踪。
一种检测跟踪是否可用以检查 ARSessions 当前帧有多少rawFeaturePoints的好方法? E.g 如果当前帧有超过 100 个 rawFeaturePoints,我们可以认为空间跟踪有效。
这是个好方法吗,还是 ARKit 中有内置的功能或更好的方法来检测空间跟踪是否在起作用,而我不知道呢?
1 回答
您可以使用特征点,但是我认为这可能是过大的,因为这样的事情可能是一个好的开始:
使用
ARSession
的currentFrame
,您可以像这样获取当前的跟踪状态:您将在
ARSCNViewDelegate
回调中调用类似的名称:e.g 也可以使用其他委托回调:
这些 ARKit 准则还提供了一些有关如何处理这些状态的有用信息:苹果指南
如果您确实想跟踪
featurePoints
的数量,则可以执行以下操作:如果您想查看示例,可以在这里查看:特征点示例
希望能帮助到你...