मैं एआरकेट की कोशिश कर रहा हूं, और मैंने this tutorial का उपयोग कर ARSCNView
सेट अप किया है।एआरकेट के साथ एक डीएई फ़ाइल प्रदर्शित करना और दृश्य में एंकर को ट्रैक करना
फिर this tutorial.
के दूसरे भाग के साथ ट्रैकिंग क्षैतिज 3 डी विमानों की स्थापना की मैं एक ही दृश्य आवेदन बनाया तो मेरे ViewController
के लिए एक आउटलेट के साथ रूट दृश्य में एक ARSCNView
फ्लश विवश है।
यहाँ ViewController
में कोड है:
import UIKit
import ARKit
class ViewController: UIViewController {
//MARK: Properties
@IBOutlet weak var arScene: ARSCNView!
//MARK: ARKit variables
var realityConfiguration: ARWorldTrackingSessionConfiguration?
//MARK: Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.prepare()
}
//MARK: Actions
//MARK: Overrides
}
extension ViewController {
func prepare() {
//Check to see if active reality is supported
guard ARSessionConfiguration.isSupported else {
//Custom alert function that just quickly displays a UIAlertController
AppDelegate.alert(title: "Not Supported", message: "Active Reality is not supported on this device")
return
}
//Set up the ARSessionConfiguration
self.realityConfiguration = ARWorldTrackingSessionConfiguration()
//Set up the ARSCNView
guard let config = self.realityConfiguration else {
return
}
//Run the ARSCNView and set its delegate
self.arScene.session.run(config)
self.arScene.delegate = self
}
}
extension ViewController: ARSCNViewDelegate {
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
return nil
}
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
guard let planAnchor = anchor as? ARPlaneAnchor else {
return
}
let plane = SCNPlane(width: CGFloat(planAnchor.extent.x), height: CGFloat(planAnchor.extent.z))
let planeNode = SCNNode(geometry: plane)
planeNode.position = SCNVector3Make(planAnchor.center.x, 0, planAnchor.center.z)
planeNode.transform = SCNMatrix4MakeRotation(-Float.pi/2, 1, 0, 0)
node.addChildNode(planeNode)
}
func renderer(_ renderer: SCNSceneRenderer, willUpdate node: SCNNode, for anchor: ARAnchor) {
print("Will updated Node on Anchor: \(anchor.identifier)")
}
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
print("Did updated Node on Anchor: \(anchor.identifier)")
}
func renderer(_ renderer: SCNSceneRenderer, didRemove node: SCNNode, for anchor: ARAnchor) {
print("Removed Node on Anchor: \(anchor.identifier)")
}
}
मैंने डाउनलोड Xcode 9 बीटा, इसके बाद एप्पल के ट्यूटोरियल और महसूस किया मेरे फोन (iPhone 6) ए 9 चिप ARWorldTrackingSessionConfiguration
वस्तु के लिए आवश्यक नहीं है।
मेरे द्वारा लिंक किए गए पहले ट्यूटोरियल में लगभग आधे रास्ते में, ऐप्पल का कहना है कि आप अभी भी ए 9 चिप के बिना एआर अनुभव बना सकते हैं। हालांकि, वे आगे की जानकारी में नहीं जाते हैं। है किसी और एक प्रारंभिक बिंदु पाया, और यह
- का उपयोग कर ट्रैकिंग कि लंगर बिंदु
- असल में प्रदर्शित करने का एक कोड उदाहरण प्रदान करने को तैयार है। डीएई फ़ाइल
आप Augmented Reality टेम्पलेट के साथ एक नया आईओएस एप्लिकेशन बना सकते हैं, और सामग्री प्रौद्योगिकी पॉपअप मेनू से SceneKit या SpriteKit चुनें। –