С ARKit 2 добавлена новая конфигурация: ARImageTrackingConfiguration
, которая в соответствии с SDK может иметь лучшую производительность и некоторые новые варианты использования.
Экспериментируя с ним на Xcode 10b2 (см. https://forums.developer.apple.com/thread/103894, как исправить загрузку ресурса), мой код теперь корректно вызывает делегата, что изображение было отслежено, и в дальнейшем узел был добавлен, но я не смог найти никакой документации, где система координат расположена, поэтому кто-нибудь знает, как поместить узел в сцену, чтобы он перекрывал обнаруженное изображение:
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
DispatchQueue.main.async {
if let imageAnchor = anchor as? ARImageAnchor {
let imageNode = SCNNode.createImage(size: imageAnchor.referenceImage.physicalSize)
imageNode.transform = // ... ???
node.addChildNode(imageNode)
}
}
}
пс: в отличие от ARWorldTrackingConfiguration
начало координат, кажется, постоянно смещается (скорее всего, установка камеры в 0,0,0).
pps: SCNNode.createImage
- вспомогательная функция без каких-либо вычислений координат.