Есть ли способ улучшить обнаружение ARKit Plane и сократить время, затрачиваемое на его обнаружение?Здесь мы обнаруживаем горизонтальную плоскость: если мы держим камеру в устойчивом положении, требуется время для ее обнаружения, и она не работает на полу.
Для стола и других подобных поверхностей это занимает около 5–6 секунд.но для пола это больше чем 20 или полминуты, и если мы не перемещаем камеру, это не работает вообще.
Вот мой код: -
override func viewDidLoad() {
super.viewDidLoad()
SVProgressHUD.show(withStatus: "Detecting Plane and Getting ready")
sceneView.delegate = self
sceneView.session.delegate = self
sceneView.showsStatistics = false
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = .horizontal
configuration.isLightEstimationEnabled = true
sceneView.session.run(configuration)
sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints]
}
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
if currentAnchor == nil {
currentAnchor = anchor
let light = SCNLight()
light.type = .directional
light.color = UIColor(white: 1.0, alpha: 1.0)
light.shadowColor = UIColor(white: 0.0, alpha: 0.8).cgColor
let lightNode = SCNNode()
lightNode.eulerAngles = SCNVector3Make(-.pi / 3, .pi / 4, 0)
lightNode.light = light
sceneView.scene.rootNode.addChildNode(lightNode)
let ambientLight = SCNLight()
ambientLight.type = .ambient
ambientLight.color = UIColor(white: 0.8, alpha: 1.0)
let ambientNode = SCNNode()
ambientNode.light = ambientLight
sceneView.scene.rootNode.addChildNode(ambientNode)
}
}
}