Я хочу отобразить два корабля над одними и теми же изображениями, но это происходит только по одному за раз.Как я могу сделать его видимым на обоих?
Я прочитал несколько других вопросов, и я попытался установить:
configuration.maximumNumberOfTrackedImages = 2
Я также попытался использовать didAddNode
функция рендеринга.
Я прикрепил картинку ниже, хотя картинки кажутся размытыми, они на самом деле четкие в реальной жизни, просто я получил его через WhatsApp, так что он сжат
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Create a session configuration
let configuration = ARImageTrackingConfiguration()
guard let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "Hydrogen", bundle: Bundle.main) else {
print("No images available")
return
}
configuration.trackingImages = trackedImages
configuration.maximumNumberOfTrackedImages = 10
// Run the view's session
sceneView.session.run(configuration)
}
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
let node = SCNNode()
if let imageAnchor = anchor as? ARImageAnchor{
let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
plane.firstMaterial?.diffuse.contents = UIColor(red: 30/255, green: 30/255, blue: 30/255, alpha: 0.05)
let planeNode = SCNNode(geometry: plane)
planeNode.eulerAngles.x = -.pi / 2
let shipScene = SCNScene(named: "art.scnassets/ship.scn")!
let shipNode = shipScene.rootNode.childNodes.first!
shipNode.position = SCNVector3Zero
shipNode.position.z = 0.15
shipNode.eulerAngles.x = .pi / 2
planeNode.addChildNode(shipNode)
node.addChildNode(planeNode)
}
return node
}
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) -> SCNNode {
let node = SCNNode()
if let imageAnchor = anchor as? ARImageAnchor{
let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
plane.firstMaterial?.diffuse.contents = UIColor(red: 30/255, green: 30/255, blue: 30/255, alpha: 0.05)
let planeNode = SCNNode(geometry: plane)
planeNode.eulerAngles.x = -.pi / 2
let shipScene = SCNScene(named: "art.scnassets/ship.scn")!
let shipNode = shipScene.rootNode.childNodes.first!
shipNode.position = SCNVector3Zero
shipNode.position.z = 0.15
shipNode.eulerAngles.x = .pi / 2
planeNode.addChildNode(shipNode)
node.addChildNode(planeNode)
}
return node`enter code here`
}
Я хочу, чтобы на каждом изображении появлялся один корабль, но он показывает только один корабль на одном изображении