我在使用iOS的ARKit, 用ARSession,开启场景重建功能.
已经可以根据扫描出的物体网格,创建三维模型.
现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上?

有解决方案的 可以联系我.
func session(_ session: ARSession, didAdd anchors: [ARAnchor]) {
DispatchQueue.global().async {
anchors.forEach { anchor in
guard let mashAnchor = anchor as? ARMeshAnchor,
let frame = session.currentFrame else { return }
// 实时添加描点图片纹理
let node = SCNNode()
node.name = mashAnchor.identifier.uuidString
let geometry = mashAnchor.scanGeometory(camera: frame.camera, node: node, needTexture: true, cameraImage: frame.captureCamera())
node.geometry = geometry
node.simdTransform = mashAnchor.transform
self.scnView.scene?.rootNode.addChildNode(node)
}
}
}
/// 可以设置纹理
func scanGeometory(camera: ARCamera, node: SCNNode, needTexture: Bool = false, cameraImage: UIImage? = nil) -> SCNGeometry {
let geometry = SCNGeometry(geometry: geometry, camera: camera, modelMatrix: transform, needTexture: needTexture)
if let image = cameraImage, needTexture {
geometry.firstMaterial?.diffuse.contents = image
} else {
geometry.firstMaterial?.diffuse.contents = UIColor(red: 0.5, green: 1.0, blue: 0.0, alpha: 0.7)
}
node.geometry = geometry
return geometry
}