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

开始使用遮挡剔除

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

设置场景

在开始之前,请确定场景中所有要设定为静态遮挡物 (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 正在渲染的三角形、顶点和批处理数量。

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