问题描述
在 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 (将#修改为@)