小编jfr*_*ahn的帖子

没有渲染/虚拟内容的ARKit / SceneKit屏幕截图

我有一个非常简单的ARKit演示应用程序,其中将一些对象放入带有标签的视图中。我目前正在使用此snapshot()功能,ARSCNView以查看所有输入的对象的视频输入的屏幕截图。

但是,我只想获取原始相机输入的UIImage,在其上没有任何额外的渲染对象,最好具有与屏幕上显示的分辨率相同的分辨率。我不确定做到这一点的最佳方法是什么。有没有办法剥离渲染的内容?我应该直接扎入相机提要吗?

当前看起来像这样:

class ViewController: UIViewController, ARSCNViewDelegate, ARSessionDelegate {

    @IBOutlet weak var sceneView: ARSCNView!

    var nodeModel:SCNNode!
    ...

    override func viewDidLoad() {
        let scene = SCNScene()
        sceneView.scene = scene
        let modelScene = SCNScene(named: ...
        nodeModel =  modelScene?.rootNode.childNode(...
        ...
        self.view.addSubview( ...
    }

    ...some ARKit stuff...some model stuff...
}

extension ViewController {
    func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
        if self.captureButton.capturing && time > self.captureTime {
            captureScreenshot(scene)            
            self.captureTime = time + TimeInterval(0.1)
        }
    }

    func …
Run Code Online (Sandbox Code Playgroud)

ios scenekit swift arkit

2
推荐指数
1
解决办法
594
查看次数

标签 统计

arkit ×1

ios ×1

scenekit ×1

swift ×1