// ********************************************** 图片加载 *************************************************
//**************************************** 概念 //
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,材质从