欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > Unity中的静态合批使用整理

Unity中的静态合批使用整理

2025/4/4 9:14:29 来源:https://blog.csdn.net/weixin_50702814/article/details/146989709  浏览:    关键词:Unity中的静态合批使用整理

静态批处理是一种绘制调用批处理方法,它组合不移动的网格以减少绘制调用。它将组合的网格转换为世界空间,并为它们构建一个共享顶点和索引缓冲区。然后,对于可见网格,Unity 会执行一系列简单的绘制调用,每个调用之间几乎没有状态变化。静态批处理不会减少绘制调用的数量,而是减少它们之间的渲染状态更改的数量。静态批处理比动态批处理更高效,因为静态批处理不会转换 CPU 上的顶点。

兼容性:

功能内置渲染管线通用渲染管线 (URP)高清渲染管线 (HDRP)自定义可编程渲染管线 (SRP)
静态批处理

开启批处理:

1.构建时:

在Edit > Project Settings > Player > Other Settings (其他设置) 中,勾选 Static Batching 。

将需要合批的物体在物体的 Inspector 面板中勾选Static,并选择Batching Static

注意:如果在构建时执行静态批处理,则 Unity 在运行时不会使用任何 CPU 资源来生成静态批处理的网格数据

2.运行时:

运行时使用StaticBatchingUtility 类批处理静态网格,静态 StaticBatchingUtility.Combine 方法将传入的游戏对象组合在一起,并为静态批处理做好准备。对于运行时以程序方式生成的网格有用
与构建时的静态批处理不同,运行时的批处理不需要启用 Static Batching Player Setting

合批条件:

合批时机:

1.构建时:

2.运行时:

性能影响:

使用静态批处理需要额外的 CPU 内存来存储组合的几何体。如果多个游戏对象使用相同的网格,则 Unity 会为每个游戏对象创建一个网格副本,并将每个副本插入到组合网格中。这意味着相同的几何体在组合网格中多次出现。无论您使用的是编辑器还是运行时API来准备用于静态批处理的游戏对象,Unity 都会执行此作。如果要保持较小的内存占用,可能必须牺牲渲染性能并避免对某些游戏对象进行静态批处理。例如,在茂密的森林环境中将树木标记为静态可能会对内存产生严重影响。


1.静态批处理可以包含的顶点数存在限制。每个静态批处理
最多可以包含 64000 个顶点。如果有更多,Unity 会创建另一个批次
2.一旦游戏对象被标记为静态并进行了静态批处理,在运行时就
不能再改变其位置、旋转、缩放等属性,否则会导致渲染错误。
3.静态批处理
会影响光照计算,因为合批后的对象会被视为一个整体。在使用静态批处理时,需要注意光照烘焙的设置,以确保光照效果符合预期。
4.静态批处理可以显著减少 Draw Call 数量,提高渲染性能,特别是在场景中包含大量静态对象的情况下。但对于经常移动或变化的对象,不适合使用静态批处理。

未完待续。。。

参考链接:

静态批处理 - Unity 手册

Unity - Manual: Static batching (unity3d.com)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词