unity 3分钟理解 批处理和drawcall有什么区别
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有什么区别相关推荐
- vbs和java有关系吗_Java程序员所需的批处理和VBS脚本 (转载)
1. 利用vbs设置环境变量 有时候感觉设置环境变量还真是比较麻烦,我是希望可以做成点击一下就ok的,这样重装系统就不用那么麻烦了,但是考虑到通用性,为了不把路径写死所以做了个选择目录的对话框,源码如 ...
- 【批处理和csv乱码怎么办】
一般是保存的是utf-8格式或者gbk或者gb2312 是因为我们程序只能处理ascii和ansi编码(西欧编码不知道可不可以) 我们使用工具转码下文件编码即可
- android中sp的意义_两分钟理解Android中SP与DP的区别
从一开始写Android程序,就被告知这些常识 长度宽度的数值要使用dp作为单位放入dimens.xml文件中 字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了, ...
- [Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 三分钟理解零序电流保护向量图
三分钟理解零序电流保护向量图 --ujslili 1.正向故障 疑问? 2.反方向故障: 3.接线方式 4.零序电流保护的评价 优点: 1)灵敏度高--几乎不受负荷电流影响--影响零序电流的就只有变压 ...
- 什么是深度学习?45分钟理解深度神经网络和深度学习 刘利刚教授
什么是深度学习? - 45分钟理解深度神经网络和深度学习 刘利刚 中国科学技术大学图形与几何计算实验室 http://staff.ustc.edu.cn/~lgliu [绪言] 近年来,人工智能(Ar ...
- Unity/Auto Layout -- 理解Layout Elements(布局元素)
前言 在UGUI1中,Canvas下的每个GameObject都会自动添加 Rect Transform 组件来控制自身的位置和大小.通常情况下,基于Rect Transform的布局系统已经足够灵活 ...
- 批处理中setlocal enabledelayedexpansion
批处理中setlocal enabledelayedexpansion的作用详细整理 设置本地为延迟扩展.其实也就是:延迟变量,全称延迟环境变量扩展, 想进阶,变量延迟是必过的一关!所以这一部分希望你 ...
- [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
最新文章
- ubuntu 12.04 联想thinkpad e430 安装wifi驱动
- jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件
- 苹果电脑怎么投屏到电视_tcl电视怎么投屏
- 25.QWidget用法
- 元宇宙是个啥?送4本科普好书
- NetCore 统一处理 webapi 返回null 转为“”
- IBM携手三菱东京日联银行 将区块链用于合同管理
- 梦里看到你为我写的情书
- html文件执行php语句
- save cookies and get cookies in system using asp.net
- ORA-01033错误解决方案
- 用计算机计算2的31次方,2的31次方,用什么方法可以最快算出来呢
- 黑鲨重装计算机安装无法继续,黑鲨装机大师常见问题详解
- 好用的各种文件在线转换工具,文件加密解密等Speedpdf
- 北京交通大学计算机仿真大作业直流调速系统仿真,计算机仿真技术大作业 12脉波整流电路仿真.doc...
- java 获取当前第几周_java 计算当前日期是今年的第几周 和 该周的开始日期及结束日期...
- Photoshop脚本 压缩并输出GIF图片
- 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式
- python音频转数组_python音频处理的示例详解
- 一位清华计算机专业的学生怎么看LINUX与WINDOWS
热门文章
- [网鼎杯 2020 青龙组]AreUSerialz
- mac java api文档_程序员必备 Dash for mac 各种语言和系统Api文档
- miniSD卡分区后的再次完成格式化
- 【Linux】【问题处理】insmod: ERROR: could not insert module xxx.ko: Unkown symbol in module问题的分析思路及解决方案
- echarts报错 Unkown series surface
- git am, git apply, git format-patch,git diff 用法
- 美国西北大学 计算机工程专业排名,[转载]美国西北大学计算机工程研究生最新专业排名...
- 离散数学图论旅行规划问题_旅游路径规划问题.pdf
- Qt学习笔记——获取本机网络信息(IP, 子网掩码, 广播地址,主机名
- 2021-11-10 末端空间路径规划?