Задержка отображения живого изображения в виде диффузного содержимого SCNMaterial для геометрии сферы - PullRequest
1 голос
/ 24 апреля 2019

Я хочу показать живое сферическое изображение с помощью SceneKit. Я использую диффузный контент SCNMaterial, чтобы показать его, но есть некоторая задержка в показе в реальном времени. Следующий код - моя попытка сделать это. Пожалуйста, руководство, если вы сталкиваетесь с таким случаем.

    @IBOutlet weak var sceneView: SCNView!
    let scene = SCNScene()


    sceneView.scene = scene
    sceneView.backgroundColor = UIColor.black

    let material = SCNMaterial()
    material.diffuse.mipFilter = .linear
    material.diffuse.magnificationFilter = .linear
    material.diffuse.contentsTransform = SCNMatrix4MakeScale(-1, 1, 1)
    material.diffuse.wrapS = .repeat
    material.cullMode = .front

    let sphere = SCNSphere(radius: 8)
    sphere.segmentCount = 300

    httpConnection.startLiveView { (data) in
        DispatchQueue.main.async {
           let image = UIImage(data: data!)
            material.diffuse.contents = image
        }
    }


    sphere.firstMaterial = material

    let sphereNode = SCNNode()
    sphereNode.geometry = sphere

    scene.rootNode.addChildNode(sphereNode)

в httpConnection.startLiveView блок Я получаю данные изображения в реальном времени.

...