3分钟理解 批处理和drawcall有什么区别?

本人技术有限,如有错误,请道友们留言讨论,切勿口吐芬芳。

正文---------------------------------------------

批处理和drawcall不同点是什么呢?要从基本的概念说起:

第一个概念:什么是drawcall?
你的游戏每渲染一个物体,cpu就要向gpu发送一次渲染命令,这个渲染命令名字叫drawcall。

普及一下,渲染命令有很多种,drawcall是其中一种(见下图):

第二个概念:什么是批处理?
批处理的概念:简单理解就是1个批处理多个物体。
批处理的目的:
批处理就是在1个drawcall内尽可能多的处理多个物体。

所以批处理只是处理问题的一种方式。

举例说明:
假设你的项目要渲染1000个物体,这时就需要cpu发送给gpu 1000次drawcall渲染命令。
每发一次渲染命令,cpu就需要花费很多的时间来做准备。发的渲染命令多了,cpu就要挨个给渲染命令做准备,大家就开始排队,一排队就要堵。所以大家平常说的drawcall多了就卡顿,其实是排队引起的。

聪明的你就想,排队会引起卡顿,那么就尽量就不排队,尽量在发每次drawcall前就多为几个物体完成准备工作,最好1次把这个1000个渲染命令全部准备完。这就是批处理的思想了。

所以我们的目标就是将 1次drawcall只能处理1个或者几个物体的情况,经过优化后变成,1次drawcall可以处理更多个的物体的情况。

总结一下:
1 批处理和drawcall不同点是:
大家会发现这个问题本身就是错误的。
强行说区别就是:
我们口头说的drawcall指的是优化前的drawcall,是1次drawcall只能处理1个或者几个物体的情况

我们口头说的批处理指的是优化后的drawcall,就是1次drawcall可以处理更多个物体的情况。

2 批处理和drawcall相同点是:
批处理的数量是和drawcall数量是一样的。

再说一点:
如果一个项目的批处理数量越多,就说明批处理数越接近drawcall数。当他们越接近相等时,也就是越接近1个drawcall处理1个物体的情况。
这种情况出现就说明该项目批处理做的稀烂,赶紧重新做批处理吧。

unity 3分钟理解 批处理和drawcall有什么区别相关推荐

  1. vbs和java有关系吗_Java程序员所需的批处理和VBS脚本 (转载)

    1. 利用vbs设置环境变量 有时候感觉设置环境变量还真是比较麻烦,我是希望可以做成点击一下就ok的,这样重装系统就不用那么麻烦了,但是考虑到通用性,为了不把路径写死所以做了个选择目录的对话框,源码如 ...

  2. 【批处理和csv乱码怎么办】

    一般是保存的是utf-8格式或者gbk或者gb2312 是因为我们程序只能处理ascii和ansi编码(西欧编码不知道可不可以) 我们使用工具转码下文件编码即可

  3. android中sp的意义_两分钟理解Android中SP与DP的区别

    从一开始写Android程序,就被告知这些常识 长度宽度的数值要使用dp作为单位放入dimens.xml文件中 字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了, ...

  4. [Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. 三分钟理解零序电流保护向量图

    三分钟理解零序电流保护向量图 --ujslili 1.正向故障 疑问? 2.反方向故障: 3.接线方式 4.零序电流保护的评价 优点: 1)灵敏度高--几乎不受负荷电流影响--影响零序电流的就只有变压 ...

  6. 什么是深度学习?45分钟理解深度神经网络和深度学习 刘利刚教授

    什么是深度学习? - 45分钟理解深度神经网络和深度学习 刘利刚 中国科学技术大学图形与几何计算实验室 http://staff.ustc.edu.cn/~lgliu [绪言] 近年来,人工智能(Ar ...

  7. Unity/Auto Layout -- 理解Layout Elements(布局元素)

    前言 在UGUI1中,Canvas下的每个GameObject都会自动添加 Rect Transform 组件来控制自身的位置和大小.通常情况下,基于Rect Transform的布局系统已经足够灵活 ...

  8. 批处理中setlocal enabledelayedexpansion

    批处理中setlocal enabledelayedexpansion的作用详细整理 设置本地为延迟扩展.其实也就是:延迟变量,全称延迟环境变量扩展, 想进阶,变量延迟是必过的一关!所以这一部分希望你 ...

  9. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. ubuntu 12.04 联想thinkpad e430 安装wifi驱动
  2. jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件
  3. 苹果电脑怎么投屏到电视_tcl电视怎么投屏
  4. 25.QWidget用法
  5. 元宇宙是个啥?送4本科普好书
  6. NetCore 统一处理 webapi 返回null 转为“”
  7. IBM携手三菱东京日联银行 将区块链用于合同管理
  8. 梦里看到你为我写的情书
  9. html文件执行php语句
  10. save cookies and get cookies in system using asp.net
  11. ORA-01033错误解决方案
  12. 用计算机计算2的31次方,2的31次方,用什么方法可以最快算出来呢
  13. 黑鲨重装计算机安装无法继续,黑鲨装机大师常见问题详解
  14. 好用的各种文件在线转换工具,文件加密解密等Speedpdf
  15. 北京交通大学计算机仿真大作业直流调速系统仿真,计算机仿真技术大作业 12脉波整流电路仿真.doc...
  16. java 获取当前第几周_java 计算当前日期是今年的第几周 和 该周的开始日期及结束日期...
  17. Photoshop脚本 压缩并输出GIF图片
  18. 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式
  19. python音频转数组_python音频处理的示例详解
  20. 一位清华计算机专业的学生怎么看LINUX与WINDOWS

热门文章

  1. [网鼎杯 2020 青龙组]AreUSerialz
  2. mac java api文档_程序员必备 Dash for mac 各种语言和系统Api文档
  3. miniSD卡分区后的再次完成格式化
  4. 【Linux】【问题处理】insmod: ERROR: could not insert module xxx.ko: Unkown symbol in module问题的分析思路及解决方案
  5. echarts报错 Unkown series surface
  6. git am, git apply, git format-patch,git diff 用法
  7. 美国西北大学 计算机工程专业排名,[转载]美国西北大学计算机工程研究生最新专业排名...
  8. 离散数学图论旅行规划问题_旅游路径规划问题.pdf
  9. Qt学习笔记——获取本机网络信息(IP, 子网掩码, 广播地址,主机名
  10. 2021-11-10 末端空间路径规划?