ARKit объект случайно покачивается - PullRequest
0 голосов
/ 28 января 2019

В нашем проекте arkit объект начинает покачиваться.Мы пытались использовать старый код, который хорошо работал до того, как возникла эта проблема, но пока не прекращалось покачивание.
Мы включили опцию отладки, чтобы показать источник, который покачивается.Мы пытались использовать наше приложение с различными устройствами (iphone XS, Ipad pro 2018, ipad 2018, все с ios 12.1.3) и объектами.
Изображение отслеживания имеет правильный размер.

Это наша конфигурация(Swift):

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "Photos", bundle: Bundle.main) else { return }
    let configuration = ARWorldTrackingConfiguration()
    configuration.detectionImages = referenceImages
    configuration.maximumNumberOfTrackedImages = 2
    let options: ARSession.RunOptions = [.resetTracking, .removeExistingAnchors]
    sceneView.session.run(configuration, options: options)
    sceneView.delegate = self
}

Это наш рендер:

 func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
        guard let imageAnchor = anchor as? ARImageAnchor else { return }
        let referenceImage = imageAnchor.referenceImage
        let imageName = referenceImage.name ?? "no name"


        let plane = SCNPlane(width: referenceImage.physicalSize.width, height: referenceImage.physicalSize.height)
        let planeNode = SCNNode(geometry: plane)
        plane.firstMaterial?.diffuse.contents = UIColor(white: 1, alpha: 0) //make the plane invisable

        let obj = SCNScene(named: "art.scnassets/obj.scn")!
        let objNode = obj.rootNode.childNodes.first!
        objNode.position = SCNVector3Zero
        objNode.eulerAngles.y = 90
        planeNode.addChildNode(objNode)
        node.addChildNode(planeNode)
    }

Кто-нибудь может помочь остановить виляние?

1 Ответ

0 голосов
/ 28 января 2019

Проблема в том, что: «Отслеживание мира - неточная наука. Этот процесс часто может давать впечатляющую точность, приводя к реалистичным ощущениям AR. Однако он основан на деталях физической среды устройства, которые не всегда согласованы или трудны для понимания.измерять в режиме реального времени без некоторой степени погрешности. Для получения высококачественного опыта AR, будьте в курсе этих предостережений и советов ".От

От Понимание отслеживания мира в ARKit .

Чтобы улучшить восприятие AR, предоставьте вашему приложению подходящую физическую среду с хорошим освещением, текстурированнойпол и т.д ... Надеюсь, это поможет!

...