Drawcall总结-Unity5.X
2015-12-18 21:01
323 查看
先理解以下什么叫做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
需要注意的是,静态批量处理的物体需要额外的内存开销,必要时减少一些静态物体去减少内存的开销。
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
需要注意的是,静态批量处理的物体需要额外的内存开销,必要时减少一些静态物体去减少内存的开销。
相关文章推荐
- 宣雨松版《Unity3D游戏开发》最后章节实战《突出重围》逻辑整理
- unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称
- “400 Bad Request”解决办法及Unity下载文件保存到本地
- 小米游戏中心sdk接入unity
- iOS与Unity3d的交互实现
- Unity插件之NGUI学习(5)—— 创建Label图文混排及文字点击
- PureMVC for Unity3d Demo
- unity3d中摄像机只看对应的对象.
- unity异步从外部文件加载音频和图片
- Unity封装dll教程整理
- 3dsmax的模型优化技巧
- Unity中使用Bumpmap Lightmap教程
- 使用Unity开发项目的一点经验
- unity3d用鼠标拖动物体的一段代码
- Script 脚本所有编译器属性详解
- 如何向另一场景发送信息
- 构建Unity3D信号槽机制 【ZObject.cs】
- unitywebplayer屏蔽鼠标右键
- Unity NGUI 描点控件的位移动画
- Unity 帧率设置和显示FPS脚本