Drawcall总结-Unity5.X

本文介绍了Drawcall的概念及其对CPU的影响,并提供了一个估算Drawcall数量的公式。通过实例计算,帮助开发者了解如何优化3D游戏引擎中的Drawcall,从而提高游戏性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先理解以下什么叫做Drawcall

CPU每传递一次需要渲染的物体信息给GPU,就算一次Drawcall。

NVIDIA 公司的一片分析3D引擎批次优化的讲稿中曾提到


(此处引用链接:http://www.docin.com/p-86211558.html 第24

大致意思是:25K batchs/s在100%的使用率下会消耗1GHz 的 CPU。

并举例:假设目标需要跑30帧;使用2GHz CPU;使用率20%/设定状态

25K*2GHz*20%/30fps=333batches/每帧

并推出了一条公式,来预估游戏中大概每帧可以处理多少个Batch:

Formula:25K*GHz*Percentage/Framerate

-GHz = target spec CPU frequency

-Percentage = value 0..1corresponding to CPU Percentage available for Draw/SetState calls

-Framerate = target trame rate in fps

 

大意可翻译为

公式:25K*GHz*百分比/帧速率

-GHz = 目标规范CPU频率

-百分比=值0到1对应CPU的百分比有效工作量用于Draw call

-帧速率=目标的fps

 

例如:打算这款游戏跑30fps、使用的手机CPU频率为1.3GHz(iPhone5S的CPU配置)、20%的有效工作量分给Draw call。那么每一帧可以处理的Draw call为:

25K*1.3*0.2/30=216

 

需要注意的是,静态批量处理的物体需要额外的内存开销,必要时减少一些静态物体去减少内存的开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值