据说:
GL verts 表示给显卡绘制的顶点数
GL calls 表示代表每一帧中OpenGL指令的调用次数
下面是代码1:
代码一:
for (int i = 0; i < 1000; i++) { int x = random() % 1080; int y = random() % 1776; auto sp = Sprite::create("CloseNormal.png"); sp->setPosition(Point(x,y)); this->addChild(sp); ``` 这个执行的时候: Gl verts 在2000~2100之间, GL calls = 1 代码二:auto batchNodeBase = SpriteBatchNode::create("CloseNormal.png"); batchNodeBase->setPosition(Point(0,0)); this->addChild(batchNodeBase); for (int i = 0; i < 1000; i++) { int x = random() % 1080; int y = random() % 1776; auto sp = Sprite::createWithTexture(batchNodeBase->getTexture()); sp->setPosition(Point(x, y)); batchNodeBase->addChild(sp); } ``` 这个执行的时候 Gl verts =6000, GL calls = 1 不是号称使用batchNode的效率会好吗,为什么 GL verts反而多呢? 而且两种方法的GL calls居然是一样的,这是为什么?