在不支持 ARKit 的设备上使用 ARSCNView



是否可以使用ARSCNView,用ARWorldTrackingConfiguration将其配置为支持它的设备,并将其配置为不支持它的设备(使用A8芯片和较低)并且该视频在后台渲染吗?

if ARWorldTrackingConfiguration.isSupported{
    let config=ARWorldTrackingConfiguration()
    config.planeDetection = .horizontal
    sceneView.session.run(config)
}else if AROrientationTrackingConfiguration.isSupported{
    let config=AROrientationTrackingConfiguration()
    sceneView.session.run(config)
}else{
    print("not supported")
    //what here?  <<<
}

您需要运行的ARSession将相机馈送到ARSCNView,以运行ARSession,您需要支持的ARConfiguration,所有配置都需要A9。

但是,如果您的A9低下计划是要具有无法获得Arkit的动作跟踪的Scenekit视图...您不需要ARKIT。只需使用常规场景视图(SCNView)即可。要使相机提要显示在您的场景内容后面,请找到所需的相机的AVCaptureDevice,然后将其传递给您视图中场景的background . contents

(使用捕获设备作为场景背景是iOS 11中的新事物。


顺便说一句,没有任何支持方向跟踪但不支持世界跟踪的设备,因此问题中的多个分支if语句是有点过分的。

在代码下方解决此问题,它可能被损坏代码

let device = sceneView.device!
let maskGeometry = ARSCNFaceGeometry(device: device)!
mask = Mask(geometry: maskGeometry, maskType: maskType)

替换
    let device = MTLCreateSystemDefaultDevice()
    let maskGeometry = ARSCNFaceGeometry(device: device!)!
    mask = Mask(geometry: maskGeometry)

相关内容

  • 没有找到相关文章

最新更新