据说:
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居然是一样的,这是为什么?