BRG 是执行以下操作的完美工具:
下表显示了哪些渲染管线支持 BRG。
| 功能名称 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP | 内置渲染管线 |
|---|---|---|---|---|
| BatchRendererGroup | 是 (1) | 是 (1) | 是 (1) | 否 |
注意:
Unity 在以下平台上支持 BRG:
为了渲染到屏幕,BatchRendererGroup (BRG) 会生成绘制命令,这些命令是特定于 BRG 的概念,包含了 Unity 高效创建优化过的实例化绘制调用所需的一切。
为了确定何时在绘制命令中渲染实例,BRG 会使用过滤器设置。过滤器设置可以控制何时渲染实例本身,还可以控制何时渲染每个实例的某些方面,例如其阴影和运动矢量
由于相同的过滤器设置通常可以应用于大量绘制命令,因此 BRG 使用绘制范围将过滤器设置应用于一系列绘制命令。绘制范围将连续的绘制命令与适用于它们的过滤器设置实例相结合。如果过滤器设置确定 Unity 不应渲染绘制命令,则绘制范围格外有用,因为它使 Unity 可以有效跳过范围内每个绘制命令的渲染。
绘制调用中的实例没有限制。可以使用不同的网格和材质多次渲染相同的实例,即具有相同实例索引和 batchID 的对象。此方法会很有用的一个示例是使用不同的材质绘制不同的子网格但使用相同的实例索引在绘制之间共享变换矩阵等属性。
有关如何使用 BRG 创建渲染器的信息,请参阅使用 BatchRendererGroup 创建渲染器。
在大多数情况下,Unity 将绘制命令渲染为可编程渲染管线中每个兼容 DrawRenderers 调用的单个平台级实例化绘制调用。但是,当图形 API 的绘制调用大小限制小于绘制命令的 visibleCount 时无法实现此操作。在这些情况下,Unity 会将绘制命令拆分为多个实例化绘制调用。