版本:Unity 6 (6000.0)
语言:English
批处理移动的游戏对象
Unity 如何批处理移动的游戏对象

动态批处理简介

动态批处理是一种绘制调用批处理方法,它将移动的游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。游戏对象的函数由附加到其上的组件定义。 更多信息
参见术语表
进行批处理以减少绘制调用动态批处理Unity 的一个自动过程,尝试将多个网格渲染成单个网格,以优化图形性能。该技术在 CPU 上转换所有游戏对象的顶点,并将许多相似的顶点组合在一起。 更多信息
参见术语表
在 Unity 在运行时动态生成的网格和几何体(例如粒子系统通过在场景中生成和动画化大量小的 2D 图像来模拟流体实体(如液体、云和火焰)的组件。 更多信息
参见术语表
)之间的工作方式有所不同。有关网格和动态几何体之间内部差异的信息,请参阅网格的动态批处理动态生成的几何体的动态批处理

注意:网格的动态批处理旨在优化旧版低端设备上的性能。在现代消费级硬件上,动态批处理在 CPU 上执行的工作量可能大于绘制调用的开销。这会对性能产生负面影响。有关更多信息,请参阅网格的动态批处理

要求和兼容性

本节包含有关动态批处理的渲染管线一系列操作,用于获取场景内容并在屏幕上显示它们。Unity 允许您从预建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见术语表
兼容性的信息。

渲染管线兼容性

功能 通用渲染管线 (URP) 高清渲染管线 (HDRP) 自定义可脚本化渲染管线 (SRP) 内置渲染管线
动态批处理

限制

在以下情况下,Unity 根本无法使用动态批处理或只能在有限程度上应用动态批处理

  • Unity 无法将动态批处理应用于包含超过 900 个顶点属性和 300 个顶点的网格。这是因为网格的动态批处理每个顶点都有开销。例如,如果您的着色器在 GPU 上运行的程序。 更多信息
    参见术语表
    使用顶点位置、顶点法线和单个 UV,则 Unity 可以批处理多达 300 个顶点。但是,如果您的着色器使用顶点位置、顶点法线、UV0、UV1 和顶点切线,则 Unity 只能批处理 180 个顶点。
  • 如果游戏对象使用不同的材质实例,即使它们本质上相同,Unity 也无法将它们一起批处理。唯一的例外是阴影投射渲染。
  • 具有光照贴图的游戏对象具有其他渲染器参数。这意味着,如果要批处理光照贴图游戏对象,它们必须指向相同的光照贴图光照贴图预渲染的纹理,包含光源对场景中静态对象的影响。光照贴图覆盖在场景几何体上以创建照明效果。 更多信息
    参见术语表
    位置。
  • Unity 无法完全将动态批处理应用于使用多通道着色器的游戏对象。
    • 几乎所有 Unity 着色器都支持前向渲染一种渲染路径,根据影响对象的光源,以一次或多次传递渲染每个对象。前向渲染对光源本身的处理方式也不同,具体取决于其设置和强度。 更多信息
      参见术语表
      中的多个光源。为此,它们会为每个光源处理一个额外的渲染传递。Unity 仅批处理第一个渲染传递。它无法批处理每个像素光源的其他绘制调用。
批处理移动的游戏对象
Unity 如何批处理移动的游戏对象