Разница между рендерером и сессией в ARKit - PullRequest
0 голосов
/ 27 апреля 2020

Я проверил следующие два примера кода.

https://developer.apple.com/documentation/arkit/capturing_body_motion_in_3d

func session(_ session: ARSession, didUpdate anchors: [ARAnchor])
{  
    for anchor in anchors        
    {            
        guard let bodyAnchor = anchor as? ARBodyAnchor else { continue }
        let skeleton = bodyAnchor.skeleton
    }
}

https://developer.apple.com/documentation/arkit/tracking_and_visualizing_faces

func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor)
{
    guard let faceAnchor = anchor as? ARFaceAnchor else { return }
    let blendShapes = faceAnchor.blendShapes    
}

Код для извлечения BlendShape лица использует «renderer» для получения значения BlendShape.

Однако код, который обнаруживает движение тела, использует «session» для получения значения.

Оба эти кода, кажется, предназначены для получения значений, которые обновляются из ARAnchor.

В чем разница между "рендерером" и "сессией"?

Как использовать два коды в разное время?

...