首页 文章

在 ARKit 中调整相机焦距

提问于
浏览
14

我想在增强现实中调整设备的物理相机焦点。 (我不是在谈论SCNCamera object.)
Apple Dev 论坛帖子中,我读过自动对焦会干扰 ARKit 的物体检测,这对我来说很有意义。

现在,我正在开发一个应用程序,用户将接近他们正在查看的对象。默认情况下,相机具有的焦点使得当靠近物体时,一切看起来都非常模糊,而不是大约 10 厘米。

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


20.01.2018
显然,这个问题仍无法解决。您可以在这个 reddit 帖子这个开发者论坛帖子阅读有关此内容的更多信息,以获取私有 API 解决方法和其他(non-helping)信息。


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

2 回答

  • 3

    作为亚历山大说,iOS 11.3 为 ARKit 带来自动对焦。
    相应的文档站点显示了它的声明方式:

    var isAutoFocusEnabled: Bool { get set }
    

    你可以这样访问它:

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

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

  • 2

    更新:从 iOS 开始 11.3 ARKit 支持自动对焦,默认情况下启用(更多信息)。手动对焦仍然无法使用。


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

    以下是 Apple 对该主题的回复(2017 年 10 月):

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

    Apple 论坛上有另一个线程,开发人员声称他可以通过调用 ARKit 使用的private AVCaptureDevice上的AVCaptureDevice.setFocusModeLocked(lensPosition:completionHandler:)方法来调整自动对焦,看起来它不会影响跟踪。虽然方法本身是公开的,但是 ARKit 的AVCaptureDevice不是,所以在生产中使用这个黑客很可能会导致 App Store 拒绝。

相关问题