15.Unity动静态批处理的区别

  1. 15.Unity动静态批处理的区别
    1. 15.1 题目
    2. 15.2 深入解析
    3. 15.3 答题示例
    4. 15.4 关键词联想

15.Unity动静态批处理的区别


15.1 题目

Unity中动态批处理和静态批处理有何区别?


15.2 深入解析

批处理技术是Unity提供的优化渲染性能的技术,通过减少DC(Draw Call)来提高渲染效率,基本原理是合并网格

  1. 动态批处理和静态批处理都可以在Player Setting中 Other Settings中设置是否开启
    静态批处理默认开启,动态批处理默认关闭

  2. 动态批处理是Unity自动会帮助我们将小型动态对象(无法处理超过 900 个顶点属性和 225 个顶点的网格,比如着色器使用顶点位置、顶点法线和单个 UV,则 Unity 最多可以批处理 225 个顶点。但是,如果着色器使用顶点位置、顶点法线、UV0、UV1 和顶点正切,则 Unity 只能批处理 180 个顶点)进行批处理
    而静态批处理只会处理设置为静态Static的对象(注意:相同材质的对象)

  3. 动态批处理主要消耗cpu性能,静态批处理主要消耗内存

  4. 动态批处理在运行时随时可能变化(对象可以频繁进行移动、旋转、缩放等操作),静态批处理结果运行时不变(静态对象不能有变化)

  5. 各渲染管线对合批策略不同:静态批处理在 Built-in/URP/HDRP 等中仍常见;动态批处理在 HDRP 等管线中往往不启用或效果有限,HDRP 通常更依赖 SRP Batcher 等机制。具体以当前 Unity 版本 Player Settings / 文档为准。

  6. Player Settings 中动静态批处理开关默认值随版本变化,以编辑器实际选项为准。


15.3 答题示例

“Unity 的批处理技术主要有两种:
动态批处理(Dynamic Batching):

  • 运行时自动合批:只对小网格(顶点数较少、属性简单)的动态对象合并;
  • 对象可移动旋转:批次可随场景变化实时重组;
  • 开销在 CPU 端:每帧需要不断打包顶点数据。

静态批处理(Static Batching):

  • 编辑器预合批:只对标记为 Static、且共用同一材质的对象预先合并;
  • 对象位置、旋转固定:运行时不重新计算划分;
  • 开销在内存端:需要额外保存合并后的大网格数据;
  • 支持所有渲染管线(Built‑in/URP/HDRP)。

在开启静态批处理后,可显著减少大型场景的 Draw Call;在少量小物件且需动态交互时,适当开启动态批处理可进一步优化渲染性能。”


15.4 关键词联想

  • 动态批处理 Dynamic Batching
  • 静态批处理 Static Batching
  • Draw Call 减少
  • 小网格/大网格
  • CPU vs 内存 开销
  • 编辑器预合批
  • 运行时合批
  • 顶点数限制
  • 材质共享
  • 渲染管线兼容


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏