问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity优化 场景DrawCall千千万,模型就能占一半

创作时间:
作者:
@小白创作中心

Unity优化 场景DrawCall千千万,模型就能占一半

引用
CSDN
1.
https://m.blog.csdn.net/a71468293a/article/details/144634410

Unity优化 场景DrawCall千千万,模型就能占一半

前言

这一期只谈操作不谈原理,建模师经常会将一堆东西导入到Unity中,并且不会在建模软件中做任何合并处理,所以这里引入一个简单合并的方式。
DrawCall是CPU调用GPU进行渲染的次数,每次调用都会产生额外开销
过多的DrawCall会导致CPU在处理渲染命令时产生性能瓶颈
在移动平台上,DrawCall的开销更为明显,很容易影响游戏帧率

项目

创建项目

使用URP示例模板

示例场景布置

直接使用UnityURP默认场景,打开Frame Debug能够清晰的看到这么点东西CPU就调用了GPU17次

使用工具

下载工具放到项目中
SkinnedMeshCombiner
打开Skinned Mesh Combiner工具够帮我们把散落的模型整理打包,大幅减少DrawCall

创建合并目标

会自动在场景中创建一个空物体

点击Combine按钮设置合并好的模型的保存位置

检查模型

原始模型会被隐藏Mesh Renderer组件

使用合并后模型

DrawCall肉眼可见的降低了,现在CPU只需要让GPU处理7次即可
Tip:

  • 合并后的模型会占用更多的内存,需要在内存和DrawCall之间找到平衡
  • 动态物体和静态物体最好分开合并
  • 使用相同材质的模型合并效果最好

总结

优化是一个持续的过程,DrawCall优化只是其中一环。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号