Version: 6000.3
语言: 中文
URP 中的 BatchRendererGroup API
在 URP 中为 BatchRendererGroup API 设置项目

URP 中的 BatchRendererGroup API 简介

BRG 是实现以下目标的完美工具:

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

渲染管线兼容性

下表显示了哪些渲染管线 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
支持 BRG。

功能名称 通用渲染管线(URP) 高清渲染管线 (HDRP) 定制 SRP 内置渲染管线
批量渲染器组 是 (1) 是 (1) 是 (1)

笔记

  1. 如果项目使用 SRP 批处理器。

平台兼容性

Unity 支持以下方面 BRG:

  • 使用 DirectX 11 的 Windows
  • 使用 DirectX 12 的 Windows
  • 使用 Vulkan 的 Windows
  • 通用 Windows 平台
  • 使用 Vulkan 的 Linux
  • 使用 Metal 的 macOS
  • iOS系统
  • Android(Vulkan 和 OpenGL ES 3.x)
  • 游戏机4
  • 游戏机5
  • Xbox One的
  • Xbox Series X 和 Xbox Series S
  • 任天堂Switch

BatchRendererGroup 的工作原理

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

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

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

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

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

技术限制

在大多数情况下,Unity 会将绘制命令渲染为单个平台级实例化绘制调用,用于可编写脚本的渲染管线中的每个兼容 DrawRenderers 调用。但是,当图形 API 的绘制调用大小限制低于绘制命令的visibleCount.在这些情况下,Unity 会将 draw 命令拆分为多个实例化的绘制调用。

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