Draw call , 对象池 Laya.pool.getItemByCreateFun ,new cc.NodePool ,性能优化,creator自己手写对象池

本文探讨了Draw Call的概念及其对性能的影响,强调了批处理思想在减少Draw Call中的作用。同时,介绍了对象池技术,包括静态和动态对象池的实现,以及在Creator中自定义对象池的方法,以此提升游戏性能和运行效率。
摘要由CSDN通过智能技术生成

// ********************************************** 图片加载 *************************************************
//**************************************** 概念 //
CPU 向 GPU 提交 的 颜色,图形,定点的渲染指令
按照场景树的 顺序进行渲染 ,先左边父物体,再左边子物体,再右边以次进行渲染
//
如何数draw call **************************************//
Label 的底层渲染 和 精灵sprite是一样的 Label经常就会打乱渲染 scrowView 里面的Label 就会 打乱 drawCall,影响性能
以节点来数darw call Label 也是 渲染 也生成draw call
有多少个可以渲染的节点 就有多少个draw call

// 批处理的思想 每加载一个小图,就会成成一个draw call 合并成一个图集后,只会生成了一个draw call
一个很显然的优化想法就是把很多小的Draw Call合并成一个大的Draw Call,这就是批处理的思想。

//***************** draw call在节点上的绘制顺序 ************************************//

//***************** 不能合并图集时,如何减少draw call ************************************//
总之,Draw call的规则是这样的:
1.render command 相邻,大致可以理解为节点树中顺序相邻
2.texture 一致
3.blend function 一致
3.shader program 一致

所以当我们要渲染的节点很多,且Draw call也多的时候,CPU需要在每次渲染的时候来进行数据处理,这时GPU闲置。
我们要避免这样的情况,就可以根据上述情况来着手,尽量把相同的节点放在相邻的节点树中。
最后,使用图集减少Draw call是有一定前提条件的(像上述条件),图集并不能减少Draw call,材质从

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值