Я хотел бы постоянно выводить обновленные матрицы преобразования глаз для ARFaceGeometry
в ARSession
.До сих пор я писал следующее, и вместо того, чтобы постоянно обновлять позицию, он просто выводит исходную позицию и продолжает повторять эти значения.Я попытался реализовать updateFeatures(for node: SCNNode,using anchor: ARFaceAnchor)
для положения глаз и не смог дать другой результат.Будут ли у вас какие-либо подсказки / явные ошибки, которые я не заметил, которые могли привести к тому, что eyeTransform не обновится?
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
var leftEyeTransform: simd_float4x4 { get {
return currentFaceAnchor!.leftEyeTransform}
}
print("Left Eye: \(currentFaceAnchor!.leftEyeTransform)")
guard anchor == currentFaceAnchor,
let contentNode = selectedContentController.contentNode,
contentNode.parent == node
else { return }
selectedContentController.renderer(renderer, didUpdate: contentNode, for: anchor)
}
В приведенном выше примере currentFaceAnchor
- это константа let
, определенная как ARFaceAnchor
в методе renderer(didAdd:)
, а contentNode
- это константа let
, определенная как contentController.renderer(nodeFor: faceAnchor)
.