Version: Unity 6.0 (6000.0)
语言 : 中文
减少 URP 中 CPU 上的渲染工作
使游戏对象与 URP 中的 GPU Resident Drawer 兼容

在 URP 中启用 GPU Resident Drawer

GPU Resident Drawer 会自动使用 BatchRendererGroup API 并通过 GPU 实例化来绘制__ GameObject__Unity 场景中的基础对象,可以表示角色、道具、风景、摄像机、路径点等。GameObject 的功能由所附的组件决定。更多信息
See in Glossary
,从而减少绘制调用次数并释放 CPU 处理时间。详情请参阅 BatchRendererGroup 工作原理

GPU Resident Drawer 仅适用于以下情况:

否则,Unity 将回退到在没有 GPU 实例化的情况下绘制 GameObject。

如果启用 GPU Resident Drawer,则以下情况适用:

  • 构建时间会变长,因为 Unity 会将所有 BatchRendererGroup 着色器变体编译到构建中。

启用 GPU Resident Drawer

请执行以下步骤:

  1. 转到 项目设置 (Project Settings) > 图形 (Graphics),然后在着色剥离 器 (Shader Stripping) 分段中将 BatchRendererGroup Variants 设置为 全部保留 (Keep All)
  2. 转到激活的 URP 资产 (URP Asset) 并启用 SRP 批处理程序 (SRP Batcher)
  3. 双击 渲染器列表 (Renderer List) 中的渲染器以打开通用渲染器 (Universal Renderer),然后将 渲染路径 (Rendering Path) 设置为 Forward+
  4. GPU Resident Drawer 设置为实例化绘制 (Instanced Drawing)

如果逐帧更改或创建 GameObject,则 GPU Resident Drawer 会随更改而更新。

要从 GPU Resident Drawer 中包含或排除 GameObject,请参阅使 GameObject 与 GPU Resident Drawer 兼容

分析 GPU Resident Drawer

要分析 GPU Resident Drawer 的结果,可使用以下方法:

优化 GPU Resident Drawer

GPU Resident Drawer 加快渲染速度的程度取决于场景。GPU Resident Drawer 在以下情况中最为有效:

  • 场景很大。
  • 多个 GameObject 使用相同的网格,从而让 Unity 可以将它们分组到单个绘制调用中。

与运行模式或最终构建的项目相比,场景 (Scene) 视图和游戏 (Game) 视图中的渲染速度通常较低。

以下方法可能会加快 GPU Resident Drawer 的速度:

  • 转到项目设置 (Project Settings) > 播放器 (Player),找到其他设置 (Other Settings) 分段并禁用静态批处理 (Static Batching)
  • 转到窗口 (Window) > 面板 (Panels) > 光照 (Lighting),然后找到光照贴图设置 (Lightmapping Settings) 分段,启用固定光照贴图尺寸 (Fixed Lightmap Size) 并禁用 使用 Mipmap 限制 (Use Mipmap Limits)

其他资源

减少 URP 中 CPU 上的渲染工作
使游戏对象与 URP 中的 GPU Resident Drawer 兼容