在ARSCNViewDelegate的didUpdate node:for:方法内手动将Facemesh添加到场景中。
代码示例:
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) { guard let faceAnchor = anchor as? ARFaceAnchor else { return }
// 获取Facemesh的SCNGeometry
guard let facemesh = ARSCNFaceGeometry(device: sceneView.device!) else { return }
facemesh.firstMaterial?.colorBufferWriteMask = .alpha // 确保透明度被绘制
// 将Facemesh添加到节点中
let meshNode = SCNNode(geometry: facemesh)
node.addChildNode(meshNode)
// 更新Facemesh的平移、旋转、缩放等属性
meshNode.transform = node.transform
meshNode.scale = SCNVector3(0.0025, 0.0025, 0.0025)
}
下一篇:ARKit面部追踪PBR