ARKit如何绘制面网格?

时间:2018-03-14 04:37:31

标签: ios swift xcode augmented-reality arkit

我想绘制face mesh in real time中显示的Apple video。它也在MeasureKit's app中完成。我得到了ARSession运行,它不断在委托中提供更新的ARFrame对象,我可以从中获取ARFaceAnchor,其中包含由ARFaceGeometry和blendShapes组成的面部地理信息。如何使用ARFaceGeometry数据实时绘制网格?

感谢。

1 个答案:

答案 0 :(得分:0)

可以在增强现实中创建面网格。我建议使用以下利用ARSCNViewDelegate的创新方法。

例如:

extension ViewController: ARSCNViewDelegate {

  func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
    guard let device = sceneView.device else {
      return nil
    }
    let faceGeometry = ARSCNFaceGeometry(device: device)
    let node = SCNNode(geometry: faceGeometry)
    node.geometry?.firstMaterial?.fillMode = .lines
    return node
  }
}

在此示例中,我们创建了要渲染的面几何。 接下来,我们需要一个基于该面部几何的SceneKit节点。 我们要求节点材料的填充模式为细线。这应该可以实现您想要的面部网格。对此的另一种方法是使面部网格对面部表情做出反应。