Unity DrawCall及优化
2023-07-29 10:50:19 来源:哔哩哔哩

Draw Call就是CPU调用图形编程接口,是CPU向GPU发送的命令和GPU并行工作的原理CPU和GPU工作有一个命令缓冲区(Command Buffer)命令缓冲区包含了一个命令队列,由CPU向其中添加命令,而由GPU从中读取命令。当CPU需要渲染一些对象时,它可以向命令缓冲区添加命令,而GPU完成了上一次的渲染任务后,它就可以从命令队列里取出一个命令并执行它。命令缓冲区中的命令有很多种类,而Draw Call是其中的一种,其它命令还有改变渲染状态等命令(改变使用的Shader,使用不同的纹理等)。


(资料图片仅供参考)

2.为什么 Draw Call多了会影响帧率?在每次调用Draw Call之前,CPU需要向GPU发送很多内容,包括数据,状态,命令等。CPU完成了这些准备工作,GPU就可以开始本次的渲染。如果Draw Call的数量太多,CPU就会把大量时间花费在提交Draw Call命令上,造成CPU的过载。3.如何减少DrawCall?DrawCall是CPU调用底层图形接口。比如有上千个物体,每一个的渲染都需要去调用一次底层接口,而每一次的调用CPU都需要做很多工作,那么CPU必然不堪重负。但是对于GPU来说,图形处理的工作量是一样的。所以对DrawCall的优化,主要就是为了尽量解放CPU在调用图形接口上的开销。所以针对drawcall我们主要的思路就是每个物体尽量减少渲染次数,多个物体最好一起渲染。所以,按照这个思路就有了以下几个方案:

使用Draw Call Batching,也就是描绘调用批处理。Unity在运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们。具体下面会介绍。

通过把纹理打包成图集来尽量减少材质的使用。

尽量少的使用反光啦,阴影啦之类的,因为那会使物体多次渲染。

mesh合并,减少Cpu需要提交的模型信息次数。

使用Gpu Instance一次绘制多个相同的物体。

优化shader 减少pass通道

注意OverDraw

Call Batching

首先我们要先理解为何2个没有使用相同材质的物体即使使用批处理,也无法实现Draw Call数量的下降和性能上的提升。

因为被“批处理”的2个物体的网格模型需要使用相同材质的目的,在于其纹理是相同的,这样才可以实现同时渲染的目的。因而保证材质相同,是为了保证被渲染的纹理相同。

因此,为了将2个纹理不同的材质合二为一,我们就需要进行上面列出的第二步,将纹理打包成图集。具体到合二为一这种情况,就是将2个纹理合成一个纹理。这样我们就可以只用一个材质来代替之前的2个材质了。

而Draw Call Batching本身,也还会细分为2种。

Static Batching 静态批处理

只要物体不移动,并且拥有相同的材质,静态批处理就允许引擎对任意大小的几何物体进行批处理操作来降低描绘调用。

那要如何使用静态批来减少Draw Call呢?你只需要明确指出哪些物体是静止的,并且在游戏中永远不会移动、旋转和缩放。想完成这一步,你只需要在检测器(Inspector)中将Static复选框打勾即可,如下图所示:

编辑

Dynamic Bathing 动态批处理

编辑

动态批处理需要在Project Setting → Player → Other Setting 中将Dynamic Bathing 勾选上,Unity会自动将使用相同材质的物体合并处理。但动态批处理需要满足以下条件:

顶点属性最大限制900的可移动物体,

使用lightmap的物体不行进行批处理

使用多通道的shader也不会进行批处理

缩放比不同的物体不会批处理

Enable GPU Instancing

在使用大量重复的物体时,需要将该物体的材质的 Enable GPU Instancing 勾选上,这样Unity会将Mesh相同的物体合并处理,常用于树木,植被,粒子等。使用GPU Instancing 对shader有要求,需要在shader中添加支持GPU Instancing 批处理的命令  #pragma multi_compile_instancing

编辑切换为居中

实际测试,如果shader中有多pass也会影响Enable GPU Instancing的合批操作。

减少实时光照和阴影效果

光照产生阴影同样会产生大量的DrawCall,类似模型的渲染,在不需要阴影的情况下关闭灯光的阴影效果,降低阴影质量。对需要阴影和不需要阴影的物体拆分shader,分别使用会产生阴影和不会产生的材质shader。

编辑

编辑

同样可以在物体的meshrender 组件中选择是否产生和接受阴影

编辑

减少Shader的pass通道

一个pass通道会多产生一个绘制信息,并且对动态合批和gpu instance产生影响,尽可能的在一个pass通道中处理好模型的表现效果。

注意渲染顺序和透明材质使用

unity的绘制顺序是先绘制不透明物体,再绘制透明物体,如果有透明物体则会导致一些像素点被重新绘制增加调用次数并可能打断一部分合批操作,如果多个透明物体重叠则更加复杂。OverDraw就是上面所表达的意思。常常是游戏的性能问题所在。注意透明材质的使用,合理的设置渲染顺序,尤其是特效这部分常常是开发者所忽略的,特效包含大量的半透明效果。

特效方面的优化可以看我这篇文章:/read/cv25215347

UGUI方面的优化可以看我这篇文章:/read/cv23858056

Unity DrawCall及优化

2023-07-29

美称中国提供给俄经济支持 中方回应是怎么说的?

2023-07-29

佳能m50套机镜头和饼干头的区别(佳能m50套机镜头参数)

2023-07-29

中央气象台7月29日06时发布台风蓝色预警

2023-07-29

前“华北第一操盘手”再收罚单:操纵凤形股份亏3亿 被罚70万

2023-07-29

新茶饮企业“跑马圈地”加速 低线市场竞争升级

2023-07-29

只有掼蛋才能教你做人

2023-07-29

航行警告!南海部分海域将进行军事训练

2023-07-29

“美国该冷静下了,我们得承认中国崛起对世界有益”

2023-07-28

第二届大国工匠创新交流大会暨大国工匠论坛在京开幕

2023-07-28

男性更年期情绪暴躁_男人是不是也有更年期吗老是乱发脾气是不是更年期的症状那要多久才好呢请大家帮我回答一下

2023-07-28

宝安中学集团第二外国语学校初中部招生范围

2023-07-28

“老伙伴”留住了,活动室“活”起来了……桃浦全力以赴解难题、办实事!

2023-07-28

中国有色金属工业协会:将与上期所探索推出铝合金期货

2023-07-28

龙虎榜丨指南针今日涨停,机构净买入2740万元

2023-07-28

大学生陪小朋友,北京科技大学实践团暑期为困难家庭子女义务助学

2023-07-28

继美国错发机密邮件给马里后,英国也犯同样错误!英媒:美国发错的文件比我们多

2023-07-28

宁波精达: 公司已研发并储备了4680电池壳体成形伺服压力机的量产方案,并陆续接单

2023-07-28

山东启动防汛防台风四级应急响应

2023-07-28

29个省份经济半年报出炉 近半数跑赢全国增速

2023-07-28

青岛金王(002094)7月28日主力资金净买入443.83万元

2023-07-28

兴齐眼药及时回应投资者关切:公司生产经营一切正常

2023-07-28

工信部等部门:大力发展高安全性锂离子电池、铅炭电池、钠离子电池等产品

2023-07-28

A股券商股掀涨停潮,东吴证券、首创证券、西南证券等7股涨停

2023-07-28

捷豹将推四门纯电GT轿跑,预计售价90万

2023-07-28

印尼考虑限制电子平台销售外国商品

2023-07-28

碳中和目标取得重要进展 相关公司业绩持续高增长

2023-07-28

7月28日 11:22分 壹网壹创(300792)股价快速拉升

2023-07-28

中国四大帝王VS西方四大军事统帅,看看谁才是大家心中的霸主

2023-07-28

又有它!北京一知名餐厅卖过期两小时饼干,被罚5万元!

2023-07-28

京津研发在河北“开花结果”(高质量发展调研行)

2023-07-28

市值缩水1300亿!药明系又添新丁,上市是解药吗?

2023-07-28

excel求和公式结果乱码 excel求和公式结果为0

2023-07-28

啥情况?日本股债双杀 日元急涨 低价股炒作新风口

2023-07-28

博时中证500增强策略ETF基金新增德邦证券为申购、赎回代办券商

2023-07-28

最新!“杜苏芮”登陆地再次调整!又一台风生成!

2023-07-28

17度穿什么衣服合适儿童_17度穿什么衣服合适

2023-07-28

浙川推出门票互免优惠举措 覆盖浙江494家旅游景区

2023-07-28

水利部将水旱灾害防御应急响应提升至Ⅲ级

2023-07-28

实现电影与话剧的融合,中国国家话剧院与中影启动战略合作

2023-07-27

刚刚公告,恒大汽车明起复牌!2年亏了840亿元,总负债超1800亿元

2023-07-27

纷美包装预计上半年纯利不少于9500万元

2023-07-27

公司借员工名义买房,员工不配合登记登记怎么办

2023-07-27

突发!俄米-8直升机坠毁,6死9伤

2023-07-27

安徽阜阳:暑假期间享书香

2023-07-27

君臣、社稷、盛世!豆瓣9分以上经典历史剧推荐

2023-07-27

天津河东区倡导低碳环保生活 为社区治理提供新思路

2023-07-27

古城夏意浓 生态好风光

2023-07-27

大货车高速掉落两轮胎,轮胎“追车”百米

2023-07-27

夏天宝宝能不能喝凉水?怎样有利于娃的健康?

2023-07-27

河东区打通起跑“第一公里” 胸痛单元彰显实效

2023-07-27

山西海帆玻璃科技有限公司高温全自动生产线车间

2023-07-27

2023游戏产业深度分析 游戏产业正逐渐走出低谷

2023-07-27

金沙江联合资本吴楠:早期VC推动S交易最大的难点是达成交易“共识”

2023-07-27

(女足世界杯)综合消息:日本西班牙晋级十六强 三支球队提前出局

2023-07-27

今年首个台风红色预警发布 各地各部门加强防台风部署

2023-07-27

7月乳制品(乳清粉、乳糖)价格行情周报(3-7日)

2023-07-27

健康科普|夏季心浮气躁 看看中医怎么说

2023-07-27

通用汽车推新款Bolt电动汽车 仅售21.4万元

2023-07-27

百余专家厦门共探网络文明国际交流互鉴

2023-07-27

上半年软件业务收入同比增14.2%

2023-07-27

太原品格

2023-07-27

霍曼科技获近亿元C轮融资 加速智能宠物硬件的研发与拓展

2023-07-27

基金降费倒逼券商改革!机构热议财富管理转型:投顾转常规充满机遇

2023-07-27

犁波耕浪向深蓝,海军某护卫舰支队舰艇编队组织实战化演练

2023-07-12

每年增长30%!哈尔滨新区“全链条”引人才

2023-07-12

港股持续走高,恒生科技ETF(513130)成交额超6亿元

2023-07-12

纯碱下行压力仍大

2023-07-12

2023年海口市乡村旅游季启动仪式暨美丽乡村骑行活动即将开幕[组图]

2023-07-12

联特科技7月12日盘中跌幅达5%

2023-07-12

广发证券:电解液盈利将率先触底 龙头超额利润优势确定

2023-07-12

统一电力市场体系建设取得重要进展

2023-07-12

有了自己的系统,还是不能赚钱,因为做不到

2023-07-12

黑龙江做优“旅游+”激活新动能

2023-07-12

区域聚焦再聚焦 推进资产负债表再重构

2023-07-12

经济日报金观平:金融政策延长适用期提振楼市信心

2023-07-12

双喜压力锅拆卸图解(双喜压力锅)

2023-07-12

胡侦探传说 胡侦探11

2023-07-11

西藏矿业上半年净利润预降93.69%-95.79%

2023-07-11

张北县全力推进“草原水街”项目落地

2023-07-11

不采摘、不购买、不食用,不做“菇”勇者!

2023-07-11

重疾险哪家保险公司好?从三家热门保险公司来看

2023-07-11

多吃豆和贝能护肝

2023-07-11

据媒体新闻,当地时间7月11日,俄罗斯总统新闻秘书佩斯科夫表示,总统普京尚未确定以何种形式参加今年8月在南非约翰内斯堡举行的金砖国家峰会

2023-07-11

7月11日LME铅库存累库1450吨 大部分来自高雄仓库

2023-07-11

外媒:墨西哥中部一批发市场疑遭纵火 已致9人死亡

2023-07-11

团伙用AI合成3000多条假视频牟利

2023-07-11

郭军2023年最新单曲《想你的夜》全网上线

2023-07-11

新华全媒+|渤海首个千亿方大气田建设取得关键性进展

2023-07-11

灌南农商行被罚款60万,因中长期贷款未分期偿还

2023-07-11

大通退7月11日快速反弹

2023-07-11

锗镓板块大步回撤,罗平锌电、云南锗业、中国铝业等跌成一片

2023-07-11

暴雪总裁回应《暗黑4》进XGP:这不会发生

2023-07-11

壹探轨道|济南轨道交通4号线又有新进展!这个车站建筑面积最大

2023-07-11

小米14外观曝光:1mm窄边框

2023-07-11

易方达富华纯债债券基金:7月12日起恢复机构客户大额申购

2023-07-11

铭利达(301268.SZ):有关减速器相关产品,公司暂未涉及

2023-07-11

国博出台新禁令,“野导游”讲解等乱象如何治理?

2023-07-11

英杰电气7月11日快速上涨

2023-07-11

东至县加快学校周边道路工程项目施工

2023-07-11