本页介绍如何设置场景以进行遮挡剔除、烘焙遮挡剔除数据以及对结果进行可视化。
在开始之前,请确定场景中所有要设定为静态遮挡物 (Static Occluder)(这些游戏对象不会移动,但会阻挡后面的游戏对象)和静态被遮挡物 (Static Occludee)(这些游戏对象不会移动,但会被静态遮挡物遮挡)。一个游戏对象可以同时是静态遮挡物和静态被遮挡物。
适合作为静态遮挡物的游戏对象包括中型到大型的实体游戏对象(例如墙壁或建筑物)。要被设定为静态遮挡物,游戏对象必须满足以下条件:
请注意,如果使用了 LOD 组,则 Unity 会使用静态遮挡物的基础细节级别游戏对象 (LOD0) 来确定要遮挡的对象。如果游戏对象的轮廓在 LOD0 和其他 LOD 级别之间变化很大,这个游戏对象可能不适合设定为静态遮挡物。
任何可能在运行时被遮挡的游戏对象都适合设定为静态被遮挡物,包括小的或透明的游戏对象。要被设定为静态被遮挡物,游戏对象必须满足以下条件:
确定了要设定为静态遮挡物和静态被遮挡物的游戏对象之后,便可以设置场景。
1.选择要设定为静态遮挡物的所有游戏对象。 2.在 Inspector 窗口中,打开 Static Editor Flags 下拉菜单,然后选择 Occluder Static。 3.选择要设定为静态被遮挡物的所有游戏对象。 4.在 Inspector 窗口中,打开 Static Editor Flags 下拉菜单,然后选择 Occludee Static。 5.将一个摄像机添加到场景中并选择该摄像机,或者选择一个现有摄像机。 6.在 Inspector 窗口中,确保启用了摄像机的 Occlusion Culling 属性。
1.在顶部菜单中,选择 Window > Rendering > Occlusion Culling 以打开 Occlusion Culling 窗口。 2.选择 Bake 选项卡。 3.在 Inspector 窗口的右下角,按 Bake 按钮。Unity 会生成遮挡剔除数据,将数据另存为项目中的资源,并将该资源与当前场景关联。
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 正在渲染的三角形、顶点和批处理数量。