Я пытаюсь получить текущую позицию camera
в сцене, добавляя метод делегата рендерера (метод в ARSCNViewDelegate):
func renderer(_ renderer: SCNSceneRenderer, willRenderScene scene: SCNScene, atTime time: TimeInterval) {
guard let pointOfView = sceneView.pointOfView else { return }
let transform = pointOfView.transform
let position = SCNVector3Make(transform.m41, transform.m42, transform.m43)
let orientation = SCNVector3Make(transform.m31, transform.m32, transform.m33)
...
}
И я хотел бы получить эти позиции для определенного количества кадров в секунду (25 кадров в секунду в моем случае). Я могу получить это, изменив этот параметр: favourFramesPerSecond , но он всегда автоматически настраивается на 30 кадров в секунду, а не на 25.
Работает нормально для 5, 15, 20, 30, 45 или 60, но почему не для 25 кадров в секунду?
override func viewDidLoad() {
super.viewDidLoad()
...
sceneView.preferredFramesPerSecond = 25
...
}
В любом случае, конечно, снижение FPS означает более низкую производительность AR, так что ... есть ли другой способ запрашивать у ARKit положение камеры в кадре каждый раз, когда мне это нужно? особенно каждые 25 кадров в секунду.
Заранее большое спасибо!