Version: 2023.2
遮挡剔除
对动态游戏对象使用遮挡剔除

开始使用遮挡剔除

本页介绍如何设置场景以进行遮挡剔除、烘焙遮挡剔除数据以及对结果进行可视化。

设置场景

在开始之前,请确定场景中所有要设定为静态遮挡物 (Static Occluder)(这些游戏对象不会移动,但会阻挡后面的游戏对象)和静态被遮挡物 (Static Occludee)(这些游戏对象不会移动,但会被静态遮挡物遮挡)。一个游戏对象可以同时是静态遮挡物和静态被遮挡物。

适合作为静态遮挡物的游戏对象包括中型到大型的实体游戏对象(例如墙壁或建筑物)。要被设定为静态遮挡物,游戏对象必须满足以下条件:

请注意,如果使用了 LOD 组,则 Unity 会使用静态遮挡物的基础细节级别游戏对象 (LOD0) 来确定要遮挡的对象。如果游戏对象的轮廓在 LOD0 和其他 LOD 级别之间变化很大,这个游戏对象可能不适合设定为静态遮挡物。

任何可能在运行时被遮挡的游戏对象都适合设定为静态被遮挡物,包括小的或透明的游戏对象。要被设定为静态被遮挡物,游戏对象必须满足以下条件:

  • 具有任何类型的 Renderer 组件
  • 在运行时不移动

确定了要设定为静态遮挡物和静态被遮挡物的游戏对象之后,便可以设置场景。

  1. 选择要设定为静态遮挡物的所有游戏对象。
  2. 在 Inspector 窗口中,打开 Static Editor Flags 下拉菜单,然后选择 Occluder Static
  3. 选择要设定为静态被遮挡物的所有游戏对象。
  4. 在 Inspector 窗口中,打开 Static Editor Flags 下拉菜单,然后选择 Occludee Static
  5. 将一个摄像机添加到场景中并选择该摄像机,或者选择一个现有摄像机。
  6. 在 Inspector 窗口中,确保启用了摄像机的 Occlusion Culling 属性。

烘焙数据

遮挡剔除检视面板 Bake 选项卡。
遮挡剔除检视面板 Bake 选项卡。
  1. 在顶部菜单中,选择 Window > Rendering > Occlusion Culling 以打开 Occlusion Culling 窗口
  2. 选择 Bake 选项卡。
  3. 在 Inspector 窗口的右下角,按 Bake 按钮。Unity 会生成遮挡剔除数据,将数据另存为项目中的资源,并将该资源与当前场景关联。

对结果进行可视化

Occlusion Culling 窗口的 Visualization 选项卡。
Occlusion Culling 窗口的 Visualization 选项卡。
  1. 确保 Occlusion Culling 窗口和 Scene 视图均为可见状态。当 Occlusion Culling 窗口可见时,Unity 在 Scene 视图中显示遮挡剔除数据和 Occlusion Culling 弹出窗口。
  2. 在场景中选择一个摄像机。
  3. 移动摄像机,观察 Scene 视图。当由于视锥体剔除或遮挡剔除而导致摄像机无法看到游戏对象时,您应该会看到游戏对象从视图中消失。
  4. 使用 Scene 视图中的 Occlusion Culling 弹出窗口来配置可视化设置。
  5. 如果需要,请调整 Occlusion Culling 窗口的 Bake 选项卡中的烘焙设置,然后重复烘焙过程。

如果使用的是内置渲染管线,则可以使用 Scene 视图模式 Overdraw_ 来查看正在发生的过度绘制数量,并可以使用 Game 视图中的 Stats 面板来查看 Unity 正在渲染的三角形、顶点和批处理数量。

遮挡剔除
对动态游戏对象使用遮挡剔除