版本:Unity 6 (6000.0)
语言:英语
URP 中的 BatchRendererGroup API
为 URP 中的 BatchRendererGroup API 设置项目

URP 中的 BatchRendererGroup API 简介

BRG 是渲染以下内容的完美工具:

  • 渲染 DOTS 实体。有关实体如何使用 BRG 的更多信息,请参阅 实体图形性能
  • 渲染大量的环境对象,其中使用单个 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、相机、路径点等等。游戏对象的功能由附加到它的组件定义。 更多信息
    参见 词汇表
    会消耗过多资源。例如,程序化放置的植物或岩石。
  • 渲染自定义 地形场景中的地形。地形游戏对象将一个大的平面添加到场景中,您可以使用地形的检视器窗口来创建详细的地形。 更多信息
    参见 词汇表
    补丁。您可以使用不同的网格或材质来显示不同级别的细节。

渲染管线兼容性

下表显示了哪些 渲染管线一系列操作,它们接收场景的内容,并将其显示在屏幕上。Unity 允许您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 词汇表
支持 BRG。

功能名称 通用渲染管线 (URP) 高清渲染管线 (HDRP) 自定义 SRP 内置渲染管线
BatchRendererGroup 是 (1) 是 (1) 是 (1)

备注:

  1. 如果项目使用 SRP Batcher。

平台兼容性

Unity 在以下平台上支持 BRG:

  • 使用 DirectX 11 的 Windows
  • 使用 DirectX 12 的 Windows
  • 使用 Vulkan 的 Windows
  • 通用 Windows 平台
  • 使用 Vulkan 的 Linux
  • 使用 Metal 的 macOS
  • iOS
  • Android (Vulkan 和 OpenGL ES 3.x)
  • PlayStation 4
  • PlayStation 5
  • Xbox One
  • Xbox Series X 和 Xbox Series S
  • Nintendo Switch

BatchRendererGroup 的工作原理

为了渲染到屏幕,BatchRendererGroup (BRG) 生成 绘制命令,这是一个 BRG 特定的概念,包含 Unity 高效创建优化、实例化 绘制调用所需的一切。

为了确定何时渲染绘制命令中的实例,BRG 使用 过滤器设置。过滤器设置控制何时渲染实例本身,但也控制何时渲染每个实例的某些方面,例如其阴影和运动向量。

由于相同的过滤器设置通常可以应用于大量绘制命令,因此 BRG 使用 绘制范围 将过滤器设置应用于一系列绘制命令。绘制范围将一系列连续的绘制命令与应用于它们的过滤器设置实例组合在一起。如果过滤器设置确定 Unity 不应该渲染绘制命令,则绘制范围特别有用,因为这使得 Unity 能够高效地跳过渲染范围内的每个绘制命令。

对哪个实例在哪个绘制调用中没有限制。有可能使用不同的网格和材质多次渲染同一个实例,即具有相同实例索引和 batchID 的对象。一个有用的示例是在使用相同的实例索引来共享诸如变换矩阵之类的属性以在绘制之间共享,但使用不同的材质绘制不同的子网格。

有关如何使用 BRG 创建渲染器的信息,请参阅 使用 BatchRendererGroup 创建渲染器

技术限制

在大多数情况下,Unity 将绘制命令渲染为可兼容的 DrawRenderers 调用在可编写脚本渲染管线中的每个平台级、实例化绘制调用。但是,当图形 API 对绘制调用的尺寸限制低于绘制命令的 visibleCount 时,这是不可能的。在这种情况下,Unity 将绘制命令拆分为多个实例化绘制调用。

URP 中的 BatchRendererGroup API
为 URP 中的 BatchRendererGroup API 设置项目