Unity 性能优化之静态批处理(三)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激!

文章目录


前言

动态批处理是常用优化技术之一。

不论是动态合批还是静态合批,因为都是牺牲内存来降低Draw Cal,也就是提高CPU。所有要根据项目情况分析来使用这些技术。

一、静态批处理是什么?

静态合批也叫静态批处理,是Unity的一种优化技术。

对于始终静止不动的物体使用静态合批后, CPU会把它们合并为一个批次发送给GPU处理,这样可以减少DrawCall带来的性能消耗,从而提升游戏性能。

二、使用步骤

1.勾选Static Batching

要使用静态合批,必须确保Edit-Project Settings-Player-Other Settings-Static Batching是勾选的。

2.测试静态合批效果

1.首先创建一个场景,在场景中创建3个cube,显示合批次数5,如下图

2.使用静态合批

选中该物体,点击在Inspector窗口右上角的Static右方的下拉菜单,选择Batching Static,点击运行

很明显降低了合批次数,如下图

三、静态合批得限制

使用静态合批虽然可以提升游戏性能,但是设置为静态的物体在整个游戏中就不能再运动了,强行使它们运动会出问题。而且即使按照以上步骤进行了静态合批,也不一定保证会成功,必须满足以下全部条件,静态合批才会成功:

1、游戏对象处于激活状态。

2、游戏对象有一个Mesh Filter组件,并且该组件已启用。

3、Mesh Filter组件具有对网格的引用。

4、网格已启用Read/Write功能。

5、网格的顶点计数大于0。

6、该网格尚未与另一个网格组合。

7、游戏对象有一个Mesh Renderer组件,并且该组件已启用。

8、网格渲染器组件不将任何材质与DisableBatching标记设置为true的着色器一起使用。

9、要批处理在一起的网格使用相同的顶点属性。例如, Unity可以将使用顶点位置、顶点法线和一个UV的网格与另一个UV进行批处理,但不能将使用顶点定位、顶点法线、UVO、UV1和顶点切线的网格进行批处理。

四、如何看是否成功

1.可以只管得看到合批次数降低

2.可以在Profiler窗口看到合批信息,是否发生变化,如下图

五、静态合批弊端

所有得优化技术都是有利有弊得,比如:静态合批就是牺牲了某些特性来得到降低Draw Call。

1.静态合批得物体不能移动、旋转等

2.增大内存开销:合批后的网格会常驻内存,在有些场景下可能并不适用。比如森林中的每一棵树的网格都相同,如果对它采用静态合批策略,合批后的网格基本等同于:单颗树网格 x 树的数量,这对内存的消耗可能就十分巨大了。因此场景加载后,由于场景内有静态合批数据,会使内存变大。

六、使用代码来静态合批

前提条件:必须满足合批条件,才会生效,和手动在编辑器里选择一样。

csharp 复制代码
StaticBatchingUtility.Combine(GameObject 根物体)
StaticBatchingUtility.Combine(GameObject[] 要进行静态合批的游戏对象,GameObject 根物体)

总结

好记性不如烂笔头

上一章:链接: Unity 性能优化之Profiler窗口(二)怎么看懂这个分析器

下一章:链接: Unity 性能优化之动态批处理(四

相关推荐
牙膏上的小苏打23332 小时前
Unity Surround开关后导致获取主显示器分辨率错误
unity·主屏幕
庸俗今天不摸鱼2 小时前
【万字总结】前端全方位性能优化指南(十)——自适应优化系统、遗传算法调参、Service Worker智能降级方案
前端·性能优化·webassembly
Unity大海4 小时前
诠视科技Unity SDK开发环境配置、项目设置、apk打包。
科技·unity·游戏引擎
Process7 小时前
前端图片技术深度解析:格式选择、渲染原理与性能优化
前端·面试·性能优化
沐土Arvin9 小时前
Nginx 核心配置详解与性能优化最佳实践
运维·开发语言·前端·nginx·性能优化
浅陌sss9 小时前
Unity中 粒子系统使用整理(一)
unity·游戏引擎
爱的叹息10 小时前
针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结
数据库·sql·性能优化
维度攻城狮14 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
为你写首诗ge17 小时前
【Unity网络编程知识】FTP学习
网络·unity
我有医保我先冲18 小时前
SQL复杂查询与性能优化:医药行业ERP系统实战指南
数据库·sql·性能优化