AR Kit 2.0 获取跟踪图像的图像细节?
AR Kit 2.0 get the image details of tracked image?
我对 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 对象/节点来进一步提升体验。有没有办法获取有关当前正在跟踪的特定图像的更多信息?
在资产目录中的 AR Reference Group 中,当您单击参考图像时,您可以打开属性检查器并输入 "Name."
此名称随后反映在 ARImageAnchor
的 name
属性 中,用于在 AR 会话开始跟踪该特定图像时创建的锚点。
然后在
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
}
我对 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 对象/节点来进一步提升体验。有没有办法获取有关当前正在跟踪的特定图像的更多信息?
在资产目录中的 AR Reference Group 中,当您单击参考图像时,您可以打开属性检查器并输入 "Name."
此名称随后反映在 ARImageAnchor
的 name
属性 中,用于在 AR 会话开始跟踪该特定图像时创建的锚点。
然后在
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
}