SCNNode 在 Swift 中的 flattenedNode 行为

问题描述

在 Swift iOS 应用程序中,我有一个主 SCNNode,其中包含数千个节点,这些节点都包含相同的几何图形。我正在使用 .copy() 克隆节点:

let firstNode = SCNNode(geometry: myGeo)
for i in 0...10000
{
    let newNode=firstNode.copy()
    rootNode.addChildNode(newNode)
    // Change position
    ...
}
scene.rootNode.addChildNode(rootNode)

所有节点都正确显示,但性能极慢。因此,我使用 flattenednode 来希望能够有效地使用优化的单个节点,因为我只使用了 1 个几何图形:

// Removing of prevIoUs "scene.rootNode.addChildNode(rootNode)"
let clo=rootNode.flattenedClone()
scene.rootNode.addChildNode(clo)

但是应用程序崩溃并出现以下错误

-[MTLDebugDevice newBufferWithBytes:length:options:],line 644: error 'Buffer Validation newBufferWith*:length 0x120ba300 不能超过 256 MB。

因为我只使用了 1 个几何体,所以 flattenednode 产生这么大的缓冲区是正常的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)