DrawCall

1.什么是DrawCall

CPU调用图像编程接口。
在Shader渲染流水线的应用阶段,当CPU准备好场景数据,设置好渲染状态,就会调用DrawCall命令,开启一个渲染过程

2.为什么DrawCall多了会影响帧率

CPU每次调用DrawCall,都需要向GPU发送许多数据、状态,在发送前CPU需要从硬盘读取到显存的数据、设置的渲染状态以及调用DrawCall命令操作。一旦CPU执行完应用阶段,GPU即开始执行本次渲染。GPU渲染的速度比CPU提交命令的速度快的多。所以性能就会被CPU的提交速度所影响,如果DrawCall数量过多,CPU就会在提交命令上花费大量时间

3.如何减少DrawCall

批处理:我们可以把众多小的DrawCall合并成一个DrawCall,减少CPU提交DrawCall次数和时间,但并不是所有的情况都能合并。但是合并网格时也会比较消耗时间,因此批处理比较适合静态的网格,项目中Static被选中的物体
合并需要注意:
避免使用大量小的网格,若不可避免的话,可以考虑合并
避免使用过多的材质,相同的材质会方便我们合并