什么是DrawCall?如何减少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被选中的物体
合并需要注意:
避免使用大量小的网格,若不可避免的话,可以考虑合并
避免使用过多的材质,相同的材质会方便我们合并

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值