关于ParticleBatchNode的优化问题

先po出代码看看吧

    local explosionNode = cc.ParticleSystemQuad:create("explosion.plist")
    local batchNode = cc.ParticleBatchNode:createWithTexture(explosionNode:getTexture())
    explosionNode:center()
    explosionNode:setAutoRemoveOnFinish(true)
    -- explosionNode:addTo(self)
    explosionNode:addTo(batchNode)
    batchNode:addTo(self)

    local explosionNode2 = cc.ParticleSystemQuad:create("explosion.plist")
    explosionNode2:pos(100, 100)
    explosionNode2:setAutoRemoveOnFinish(true)
    -- explosionNode2:addTo(self)
    explosionNode2:addTo(batchNode)

    local explosionNode3 = cc.ParticleSystemQuad:create("explosion.plist")
    explosionNode3:pos(200, 200)
    explosionNode3:setAutoRemoveOnFinish(true)
    -- explosionNode3:addTo(self)
    explosionNode3:addTo(batchNode)


```



这里既是不使用BatchNode,直接添加效果也是一样的
glcall在两种情况下都是1,顶点绘制基本上也没有太大变化
如果没有setAutoRemoveOnFinish,则batchNode的那种最后顶点数会很多,应该是batchNode没有remove的原因

主要就是不理解到底BatchNode优化了哪些东西

还有一点就是explosion.plist是使用ParticleDesigner导出的
查看里面的plist文件,有一个key是textureFileName
 
而如果这个key还下面的textureImageData同时存在
那这里就会报出如下错误
 
看了好多例子都是这样写的,看了下源码,发现如果有名字,其实就没有直接去读取textureImageData了
 
最终我是直接把plist中的textureFileName去掉了,不过感觉应该导出了这样也是可以用才对

最后还是希望求教下关于ParticleBatchNode的优化到底体现在哪里?
如果有,为什么我的这个demo却没有效果? 

 explosion.zip (6 KB)

这里不知道编辑的时候,怎么图1到了下面,具体就是设置成batchNode那样读取explosionNode:getTexture,
如果plist中存在textureFileName,就会报出get data from file xxx failed的错误