I was trying to do some investigation with ARKit. In its ARKit demo, either using ARSCNView or ARSession + metal, the performance is fine (on iPhone 6s, CPU about 50%). But if I replace ARSCNView with SCNView + ARSession, the CPU turns to over 100% after several seconds, and receive "[Technique] World tracking performance is being affected by resource constraints [1]" in the console.
Anybody knows why the SCNView reduces the performance vs ARSession + metal? And how does ARSCNView optimize with this issue?
Note: My demo project is simple: create a SceneKit based Game project, add following codes in the viewDidLoad function,
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = .horizontal
arsession = ARSession()
arsession.run(configuration, options: ARSession.RunOptions(rawValue: 0))