通过减少GL CALLS 来优化渲染性能

        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次数

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值