渲染批次合并之顶点
根据前面说过的render-flow流程接下来就是重头戏了render流程,其中包括了,检查两个渲染节点是否可以合并,同时把renderData的数据填充到modelBatch里的buffer中去。
所有需要渲染的节点都有一个rednerComponent(engine/cocos2d/core/cpmponents/CCRenderComponent.js),那就从这里入手。第一个参数其实就是modelBatcher。第二个参数cullingMask是跟camera相关的,后续再看。
先看modelBatcher(engine/cocos2d/core/renderer/webgl/model-batcher.js)的结构。
modelBatcher
我们可以看到它创建了4个类型的Buffer,并且持有了一个renderScene,renderScene以后再说。先看这个Buffer,对于2d渲染来说我们用到的也就是其中的_mesh-buffer,其他的基本也是相同的写法,只要搞懂一个,其他的也就都一样。先看看meshBuffer(engine/cocos2d/core/renderer/webgl/mesh-buffer.js)。
这个里面的东西很多。