GL verts 表示给显卡绘制的顶点数
GL calls 表示代表每一帧中OpenGL指令的调用次数
其中“GL calls”代表每一帧中OpenGL指令的调用次数,这个数字越小,程序的绘制性能就越好。
cocos中渲染流程是这样的:
(1)drawScene开始绘制场景
(2)遍历场景的子节点,调用visit函数,递归遍历子节点的子节点
(3)对每一个子节点调用draw函数
(4)初始化QuadCommand对象,这就是渲染命令,会丢到渲染队列里
(5)丢完QuadCommand就完事了,接着就交给渲染逻辑处理了。
(7)渲染逻辑遍历渲染命令队列,这时候会有一个变量,用来保存渲染命令里的材质ID,遍历过程中就拿当前渲染命令的材质ID和上一个的材质ID对比,如果发现是一样的,那就不进行渲染,保存一下所需的信息,继续下一个遍历。好,如果这时候发现当前材质ID和上一个材质ID不一样,那就开始渲染,这就算是一个渲染批次了。
按照上面的逻辑,分成以下两种方式处理:
一:在面对localType类型的图片时,我们在写逻辑的时候注意将同一纹理的对象统计放到一起加载就行了。
二:在面对plist类型的图片时,plist合图实际上算是一个材质,比如 lin.png 合图里有 lin_test1.png ,lin_test2.png...
所以在我需要创建 lin_test1.png ,lin_test2.png...等图片的时候,并不需要将其分类处理,整个渲染过程其实只做了一次gl call。
综上,如果是需要连续多种大量创建的图片对象,将其放到一个plist合图里处理能非常有效的降低gl call次数