如何在重建的网格上放置锚点以获得准确性

How to put an anchor on reconstructed mesh to get accuracy

我正在探索激光雷达及其在 ARKit 中的功能。我正在考虑激光雷达网格上的光线投射位置(x,y)。这意味着我想在光线投射位置的激光雷达网格上放置一个锚点。 目标是在 surface/mesh 上保持锚点对象的粘性和准确性。下图可以更好地理解

如何在光线投射中获取网格位置而不是默认的 ARWorld 位置。这意味着,如何将锚点或框放在 mesh/ARMeshAnchor 的特定位置?

它适用于任何 LiDAR 的重建网格,而不仅仅是平面:

@objc func tapped(_ sender: UITapGestureRecognizer) {
    
    let tapLocation = sender.location(in: arView)
    
    if let result: ARRaycastResult = arView.raycast(from: tapLocation,
                                                allowing: .estimatedPlane,
                                               alignment: .any).first {
        
        let resultAnchor = AnchorEntity(world: result.worldTransform)
        
        resultAnchor.addChild(self.sphereObject(0.05, .systemRed))
        
        arView.scene.addAnchor(resultAnchor, removerAfter: 10.0)
    }
}