我希望在增强现实中调整设备的物理相机焦点。 (我不是在谈论SCNCamera
对象。)
在Apple Dev forum post中,我读到自动对焦会干扰ARKit的物体检测,这对我来说很有意义。
现在,我正在开发一个应用程序,用户将接近他们正在查看的对象。默认情况下,相机具有的焦点使得当靠近物体时,一切看起来都非常模糊,而不是大约10厘米。
我可以在初始化场景之前调整相机的焦距,或者最好是在场景中吗?
2018年1月20日
显然,这个问题仍然无法解决。您可以在this reddit post和this developer forum post了解有关私有API解决方法和其他(非帮助)信息的详细信息。
2018年1月25日
@AlexanderVasenin提供了一个指向Apple的文档的有用更新。它表明,从{11}开始,ARKit
不仅可以支持聚焦,还可以支持自动对焦。
请参阅下面的使用示例。
答案 0 :(得分:3)
作为stated by Alexander,iOS 11.3为ARKit带来了自动对焦功能 corresponding documentation site显示了它的声明方式:
var isAutoFocusEnabled: Bool { get set }
您可以通过以下方式访问它:
var configuration = ARWorldTrackingConfiguration()
configuration.isAutoFocusEnabled = true // or false
但是,由于默认为true
,您甚至不必手动设置它,除非您选择退出。
答案 1 :(得分:2)
更新:从iOS 11.3开始ARKit支持自动对焦,默认情况下启用(more info)。手动对焦仍然无法使用。
在iOS 11.3之前,ARKit既不支持手动对焦调整也不支持自动对焦。
以下是Apple对该主题的回复(2017年10月):
ARKit无法启用自动对焦,因为它可能会对平面检测产生不利影响。现有功能请求支持自动对焦,无需提交其他请求。任何其他焦点差异应作为错误报告提交。请务必包含设备型号和操作系统版本。 (source)
在Apple论坛上another thread,开发人员声称他可以通过在ARKit使用的私有 AVCaptureDevice.setFocusModeLocked(lensPosition:completionHandler:)
上调用AVCaptureDevice
方法来调整自动对焦看起来它不会影响跟踪。虽然the method本身是公开的,但ARKit的AVCaptureDevice
不是公开的,因此在生产中使用此黑客很可能会导致App Store拒绝。