【问题标题】:Adjust camera focus in ARKit在 ARKit 中调整相机焦点
【发布时间】:2018-02-19 02:25:57
【问题描述】:

我想在增强现实中调整设备的物理相机焦距。 (我不是在谈论 SCNCamera 对象。)
Apple Dev forum post 中,我读到自动对焦会干扰 ARKit 的对象检测,这对我来说很有意义。

现在,我正在开发一个应用程序,用户可以靠近他们正在查看的对象。默认情况下,相机的焦距会使所有物体在距离物体 10 厘米左右时看起来非常模糊。

我可以在初始化场景之前或最好在场景中时调整相机的焦距吗?


20.01.2018
显然,这个问题仍然没有解决方案。您可以在this reddit postthis developer forum post 上阅读更多相关信息,了解私有 API 变通办法和其他(非帮助性)信息。


25.01.2018
@AlexanderVasenin 提供了指向 Apple 文档的有用更新。从 iOS 11.3 开始,ARKit 不仅可以支持对焦,还可以支持自动对焦
请参阅下面的使用示例。

【问题讨论】:

  • 你找到解决这个问题了吗?
  • 不。该帖子不断获得好评,但到目前为止没有人回答甚至评论,所以我猜目前没有解决方案。

标签: swift camera arkit


【解决方案1】:

作为stated by Alexander,iOS 11.3 为 ARKit 带来了自动对焦。
corresponding documentation site 显示了它是如何声明的:

var isAutoFocusEnabled: Bool { get set }

您可以通过以下方式访问它:

var configuration = ARWorldTrackingConfiguration()
configuration.isAutoFocusEnabled = true // or false

但是,由于默认为true,您甚至不必手动设置它,除非您选择退出。

【讨论】:

    【解决方案2】:

    更新:从 iOS 11.3 开始,ARKit 支持自动对焦,并且默认启用 (more info)。手动对焦仍然不可用。


    在 iOS 11.3 之前,ARKit 既不支持手动调焦也不支持自动对焦。

    这是 Apple 对此主题的回复(2017 年 10 月):

    ARKit 不会在启用自动对焦的情况下运行,因为它可能会对平面检测产生不利影响。存在支持自动对焦的现有功能请求,无需提交其他请求。任何其他焦点差异都应作为错误报告提交。请务必包括设备型号和操作系统版本。 (source)

    Apple 论坛上有 another thread,其中一位开发人员声称他能够通过在 ARKit 使用的 private AVCaptureDevice 上调用 AVCaptureDevice.setFocusModeLocked(lensPosition:completionHandler:) 方法来调整自动对焦,并且似乎它不会影响跟踪。虽然 the method 本身是公开的,但 ARKit 的 AVCaptureDevice 不是公开的,因此在生产中使用此 hack 很可能会导致 App Store 被拒绝。

    【讨论】:

    • 嗯,谢谢?我的意思是 1)我的问题与自动对焦无关,并且 2)我已经链接了该解决方法。
    • @LinusGeffarth 我刚刚在答案中总结了您的发现,以便其他开发人员更容易。如果你愿意,你可以自己做。
    • 感谢您一直关注我们!
    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多