【发布时间】:2016-08-11 20:34:49
【问题描述】:
当我显示来自COLLADA 文件的节点时,CPU 使用率上升到 100%+。
Link to pic
我没有使用模拟器,我使用的是我的实际手机。该模型由大约 80k 个顶点组成。
这是我加载模型的方式:
// Add Character
func addModel(name:String)
{
// Load COLLADA Model
if let myScene = SCNScene(named: "Assets.scnassets/"+name+"/"+name+".dae")
{
// Recurse through all the child nodes in the model and add to modelNode
for node in myScene.rootNode.childNodes as [SCNNode]
{
modelNode.addChildNode(node)
}
// Add modelNode to scene
self.rootNode.addChildNode(modelNode)
}
else
{
print("Error loading model: "+name)
}
}
型号为 122MB,可在此处找到:
Link to zip
我尝试过使用不同的型号,但每个型号的 CPU 都发疯了。它们都是大约 122MB(听起来很大)和大约 80k 个顶点。
更新
试图降低 SceneKit 中的多边形数量。在搅拌机中,我将顶点从 20k 降低到 5k (see here)。但是当我在 SceneKit 中加载模型时,多边形数仍然相同(68k)。我还尝试将模型和动画转换为 .SCN。这导致文件大小大大变小,但多边形数量和 CPU 使用率相同。
Pictures of showStatistics
我认为我需要做的是降低多边形数量,而不是降低文件大小(但不要认为那会有害)。
更新 2 现在我实际上设法将多边形数量降低到大约 48k。仍然落后。如果我删除纹理,CPU 会低得多。
【问题讨论】: