SCNView запаздывает при добавлении модели DAE, но не при использовании SCN
Так что я возился с ARKit и загружаю довольно большую (10 МБ) модель в свою сцену. Я загружаю модель, используя SCNReferenceNode следующим образом:
let modelNode = SCNReferenceNode(url: Bundle.main.url(forResource: "art.scnassets/BigModel", withExtension: "DAE")!) {
DispatchQueue.global(qos: .background).async {
modelNode.load()
modelNode.position = SCNVector3Make(planeHitResult.worldTransform.columns.3.x, planeHitResult.worldTransform.columns.3.y, planeHitResult.worldTransform.columns.3.z)
self.sceneView.scene.rootNode.addChildNode(modelNode)
}
Я прочитал все потоки, связанные с зависанием / запаздыванием при добавлении узлов SCNNodes как ребенка, и перепробовал все, включая подготовку узлов, но все же я вижу хорошее отставание в 1-2 секунды при добавлении узла DAE в мою сцену.
Теперь, если я преобразую свой файл в файл.scn, все будет работать, как должно, и больше не будет лагов, моя модель также снизится до 5 Мб с 10 Мб. Моя модель все еще занимает 1-2 секунды, но, по крайней мере, отстает или зависает. Просто чтобы быть уверенным, что я также проверил пример приложения Apple с хамелеоном на странице ARKit и даже их модель (40 МБ), которая является DAE, замораживает экран на секунду или около того при добавлении.
Это приводит меня к вопросам, которые делают.scn настолько особенным, что не происходит замораживание, и есть ли предел тому, насколько большой должна быть модель, чтобы избежать такой проблемы?