【发布时间】:2021-04-14 16:26:46
【问题描述】:
我正在加载一个 300mb 的 3d 模型,扩展名为 .dae,转换为 .scn,有 440 万个顶点,150 万个多边形,这是一个由艺术家在 3DS MAX 中创建的建筑物的 3d 模型,如下所示:
let sceneToLoad = SCNScene(named: "art.scnassets/building1.scn")!
(通过 SCNView.allowsCameraControl = true 加载到应用程序的 SCNView 默认查看器中,以便用户查看、旋转等)
Xcode 在读取该行时会立即崩溃,只有编译器信息“在展开可选值时意外发现 nil”。
当它运行到该行时,内存根本没有增加 - 这表明它拒绝读取它,而是崩溃了。 3d 模型在 XCODE Scenekit 编辑器图形查看器中完美加载和查看、可旋转等。当我将其替换为指向较小 3d 模型的另一个文件名时,它工作正常,即使我删除同一文件中的模型 SCNNode(在同一个“building1.scn”文件中)并替换为另一个较小的 SCNNode随机对象,然后奇迹般地它也可以正常工作并加载。
我在 SO 上没有发现任何类似的东西 - 在其他类似的答案中,即使模型很大,iOS 也会尝试加载模型,但没有任何一个它会立即崩溃,发现一个 nil 值。
已尝试所有解决方法,删除/删除文件并再次添加,以原始形式将其加载为 .dae,加载场景而不展开,稍后在搜索节点时展开 - 没有任何效果,总是以相同的方式崩溃。当我尝试在 ARKIT 场景中加载它时也会发生同样的事情 - 它在上面试图加载文件的行中崩溃。
有没有人遇到过这种情况,或者知道任何解决方法?
非常感谢
【问题讨论】:
标签: swift augmented-reality scenekit arkit realitykit