Version: 6000.3
语言: 中文
对 URP 中的 SRP 批处理程序进行故障排除
GPU常驻抽屉

删除 URP 中游戏对象的 SRP Batcher 兼容性

在极少数情况下,您可能希望有意将特定游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
与 SRP Batcher 不兼容。例如,如果你想使用GPU实例化,这与SRP批处理器不兼容。如果你想使用完全相同的材质渲染许多相同的网格体,GPU实例化可能比SRP批处理器更有效。要使用 GPU 实例化,您必须:

有两种方法可以从游戏对象中删除与 SRP Batcher 的兼容性:

  • 使着色器在 GPU 上运行的程序。更多信息
    请参阅术语表
    不相容的。
  • 使渲染器不兼容。

提示: 如果您使用 GPU 实例化而不是 SRP Batcher,请使用分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
以确保 GPU 实例化对您的应用程序来说比 SRP Batcher 更有效。

删除着色器兼容性

您可以使手写着色器和着色器图表着色器与 SRP Batcher 不兼容。但是,对于着色器图表着色器,如果您经常更改和重新编译着色器图表,则使渲染器不兼容会更简单。

要使 Unity 着色器与 SRP Batcher 不兼容,您需要对着色器源文件进行更改:

  1. 对于手写着色器,请打开着色器源文件。对于着色器图表着色器,将着色器图表的编译后着色器源代码复制到新的着色器源文件中。在应用程序中使用新的着色器源文件,而不是着色器图表。
  2. 将新的材质属性声明添加到着色器的Properties块。不要在UnityPerMaterial常量缓冲区。

material 属性不需要执行任何作;只是有一个不存在于中存在的物质属性UnityPerMaterial常量缓冲区使着色器与 SRP 批处理器不兼容。

警告: 如果使用着色器图表,请注意,每次编辑和重新编译着色器图表时,都必须重复此过程。

删除渲染器兼容性

您可以使单个渲染器与 SRP Batcher 不兼容。为此,请添加一个MaterialPropertyBlock到渲染器。

对 URP 中的 SRP 批处理程序进行故障排除
GPU常驻抽屉