首页 > 解决方案 > AR Kit 2.0 获取跟踪图像的图像细节?

问题描述

我对 AR Kit 还很陌生,但最近我发现图像跟踪功能非常棒。我发现它很简单:

let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "AR Resources", bundle: Bundle.main)

let configuration = ARImageTrackingConfiguration()
configuration.trackingImages = referenceImages
configuration.maximumNumberOfTrackedImages = 1

sceneView.session.run(configuration)

效果很好!但是,我想通过识别已跟踪的图像并根据跟踪的图像显示不同的 AR 对象/节点来进一步体验。有没有办法获取有关当前正在跟踪的特定图像的更多信息?

标签: iosswiftaugmented-realityarkit

解决方案


在资产目录中的 AR 参考组中,单击参考图像时,可以打开属性检查器并输入“名称”。

属性检查器

然后,此名称会反映在AR 会话开始跟踪该特定图像时创建的锚点的name属性中。ARImageAnchor

然后在

func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode?

您可以检查锚点并做出相应的响应。例如:

func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
    guard let anchor = anchor as? ARImageAnchor else { return nil }
    if anchor.name == "calculator" {
        print("tracking calculator image")
        return SCNNode.makeMySpecialCalculatorNode()
    }
    return nil
}

推荐阅读