【发布时间】:2018-01-07 23:11:15
【问题描述】:
我见过有人用ARSCNView 运行ARKit,他们能够在相机中获取一个二维码矩形,并在与二维码在空间中的位置相关的位置渲染一些东西。我以为他们是通过委派AVCaptureMetadataOutputObjectsDelegate 做到的,所以我继续尝试实现以下逻辑:
-
同时运行
ARSCNViewDelegate、ARSessionDelegate和AVCaptureMetadataOutputObjectsDelegate。 -
连接
ARSCNView,将视图及其会话委托给自己。 -
连接
AVCaptureSession,将其委托给自己,然后开始会话。 -
启动
ARSCNView会话,因为官方示例在viewWillAppear()中执行此操作,所以我做了同样的事情。
应用程序确实运行没有任何错误,但我只能从AVCaptureMetadataOutputObjectsDelegate得到一些回调,比如3到5,然后它就再也不会被调用了,就像ARSession的代表夺取了它的权限一样,是我实施错误的方法,或者您不能同时委派ARSession 和AVCaptureSession?
【问题讨论】:
-
你知道他们用什么来渲染二维码的 3D 位置吗?
-
如果您能够获取相机帧的元数据,您可以将 QRCode 的矩形转换为 3D 坐标并进行渲染。
-
这正是我一周前想要做的,但我没有成功......我试图理解你可以将 QRCode 的矩形知道其在屏幕上的位置转移到 3D协调。你需要一个特定的框架来做到这一点吗?
标签: swift avfoundation ios11 arkit