首页 > 解决方案 > Swift:使用 SCNText 正确显示顶点标签

问题描述

我正在尝试使用 SCNText 从带有适当顶点标签的 AR 面部教程生成面部网格。我遵循在线教程并具有以下内容:

enterextension EmojiBlingViewController: ARSCNViewDelegate {
func renderer(_ renderer: SCNSceneRenderer,didUpdate node: SCNNode,for anchor: ARAnchor) {
  guard let faceAnchor = anchor as? ARFaceAnchor,
    let faceGeometry = node.geometry as? ARSCNFaceGeometry else {
      return
  }
  faceGeometry.update(from: faceAnchor.geometry)
}
  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)
    for x in [1076, 1070, 1163] {
          let text = SCNText(string: "\(x)", extrusionDepth: 1)
          let txtnode = SCNNode(geometry: text)
          txtnode.scale = SCNVector3(x: 0.001, y: 0.001, z: 0.001)
          txtnode.name = "\(x)"
          node.addChildNode(txtnode)
          txtnode.geometry?.firstMaterial?.fillMode = .fill
      }
    node.geometry?.firstMaterial?.fillMode = .lines
    return node
  }
} 

但是,这些顶点(1076、1070、1163)显示不正确——它们在中心重叠。

所以我的问题是,有没有人知道如何在网格上的正确位置正确显示 (x in [1076, 1070, 1163])?

谢谢!

更新:我看到数字重叠并且它们与前置摄像头一起移动。

标签: iosswiftxcode

解决方案


推荐阅读