From 712cf3385b09ee6b39305d6f81b0743fb3378de7 Mon Sep 17 00:00:00 2001 From: u0u0 Date: Mon, 9 Jun 2014 14:54:26 +0800 Subject: [PATCH] update auto-batching. --- .../v3/auto-batching/src/auto-batching.png | Bin 0 -> 31265 bytes .../framework/native/v3/auto-batching/zh.md | 78 +++++++++++++++++- 2 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 manual/framework/native/v3/auto-batching/src/auto-batching.png diff --git a/manual/framework/native/v3/auto-batching/src/auto-batching.png b/manual/framework/native/v3/auto-batching/src/auto-batching.png new file mode 100644 index 0000000000000000000000000000000000000000..533c40bcb8eb0f3fcdb57a5662ad65cf63c93845 GIT binary patch literal 31265 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 + for(int i = 0; i < 10000; i++) + { + Sprite* sprite = Sprite::create("CloseNormal.png"); + sprite->setPosition(Point(CCRANDOM_0_1() * winSize.width, 0 + CCRANDOM_0_1() * winSize.height)); + this->addChild(sprite); + } + ``` + +2. 使用精灵帧表单,加载生成添加不同的精灵。但是各个精灵的材质都是一样的,满足Auto-batching的条件。此时的渲染批次为2.(首先,即使我一个精灵也不创建,渲染批次也至少是1,加上刚刚这重复添加的精灵的渲染) + + ``` + SpriteFrameCache::getInstance()->addSpriteFramesWithFile("MatrixLayer.plist"); + + Size winSize = Director::getInstance()->getWinSize(); + for(int i = 0; i < 10000; i++) + { + char buf[64]; + sprintf(buf,"Item%dn.png", i%5 + 1); + SpriteFrame *frame= SpriteFrameCache::getInstance()->getSpriteFrameByName(buf); + Sprite *sprite = Sprite::createWithSpriteFrame(frame); + sprite->setPosition(Point(CCRANDOM_0_1() * winSize.width, 0 + CCRANDOM_0_1() * winSize.height)); + this->addChild(sprite); + } + + ``` +在实际使用中推荐使用这种方式。 + +3. 此种情况假设在不同的zOrder下添加不同的精灵,在遍历子节点之前,其实还偷偷做了一件事情,那就是,调用sortAllChildren();函数对子节点进行排序,虽然重复添加不同材质生成的精灵,但是它们的zOrder不一样,根据zOrder,Auto-batching渲染命令被重新排序,根据材质相同加入渲染队列从而降低了渲染次数。 + + ``` + for(int i = 0; i < 10000; i++) + { + Sprite* sprite1 = Sprite::create("CloseNormal.png"); + sprite1->setPosition(Point(CCRANDOM_0_1() * winSize.width, 0 + CCRANDOM_0_1() * winSize.height)); + this->addChild(sprite1); + + Sprite* sprite2 = Sprite::create("CloseSelected.png"); + sprite2->setPosition(Point(CCRANDOM_0_1() * winSize.width, 0 + CCRANDOM_0_1() * winSize.height)); + this->addChild(sprite2); + sprite2->setZOrder(1); + + } + ``` +如果注释掉sprite2->setZOrder(1);你会发现渲染批次会升高。 + -Auto-batching拥有更好的性能提升。 \ No newline at end of file