打开遮挡剔除 (Occlusion Culling) 窗口的方法是导航到顶部菜单,然后选择__窗口 (Window)__ > 渲染 (Rendering) > 遮挡剔除 (Occlusion Culling)。
遮挡剔除窗口有 3 个选项卡:__对象 (Object)、烘焙 (Bake)__ 和__可视化 (Visualization)__。除此之外,当遮挡剔除窗口和场景视图均可见时,场景视图中将显示遮挡剔除弹出窗口。
在__对象 (Object)__ 选项卡中,可以单击__全部 (All)、渲染器 (Renderers)__ 和__遮挡区域 (Occlusion Areas)__ 按钮以筛选层级视图 (Hierarchy) 窗口的内容。
当__渲染器 (Renderers)__ 筛选条件激活时,在层级视图窗口或场景视图中选择一个渲染器,即可在遮挡剔除窗口中查看和更改渲染器的遮挡剔除设置。
当__遮挡区域 (Occlusion Areas)__ 筛选条件激活时,可以在层级视图窗口或场景视图中选择一个遮挡区域,然后在遮挡剔除窗口中查看和更改遮挡区域的__是视野体 (Is View Volume)__ 设置。也可以单击“创建新遮挡区域 (Create New Occlusion Area)”以便在场景中创建新的遮挡区域。
在__烘焙 (Bake)__ 选项卡中,可以微调遮挡剔除烘焙过程的参数。请通过配置这些设置在烘焙时间、运行时数据大小和可视化结果之间找到平衡。
设置默认参数 (Set Default Parameters) 按钮可将参数重置为默认值。
| 设置 | 描述 |
|---|---|
| 最小遮挡物 (Smallest Occluder) | 可以遮挡其他游戏对象的最小游戏对象的大小(以米为单位)。通常,要使文件最小且烘焙时间最短,应选择在场景中产生良好结果的最大值。 |
| 最小孔 (Smallest Hole) | 摄像机可以看到的最小间隙的直径(以米为单位)。通常,要使文件最小且烘焙时间最短,应选择在场景中产生良好结果的最大值。 |
| 背面阈值 (Backface Threshold) | 如果需要减小烘焙数据的大小,Unity 可以在烘焙时对场景进行采样,并排除场景中可见遮挡物几何体所含背面超过给定百分比的部分。背面百分比很高的区域可能在几何体的下方或内部,因此不太可能是在运行时摄像机所在的某个位置。默认值 100 表示绝不会从数据中删除区域。值越小,产生的文件就越小,但可能会导致视觉失真。 |
烘焙选项卡的底部是__烘焙 (Bake)__ 和__清除 (Clear)__ 按钮。单击__烘焙 (Bake)__ 按钮可烘焙遮挡剔除数据。单击__清除 (Clear)__ 按钮可删除之前烘焙的数据。
当__可视化 (Visualization)__ 选项卡可见时,如果在场景视图或层级视图窗口选择一个摄像机,则 Unity 将更新场景视图,从所选摄像机的视角显示遮挡剔除的效果。可以使用场景视图中的遮挡剔除弹出窗口来配置可视化设置。
遮挡剔除弹出窗口有两种模式:__编辑 (Edit)__ 和__可视化 (Visualization)__。可以使用下拉菜单在两者之间切换。
| 设置 | 描述 |
|---|---|
| 视图体积 (View Volumes) | 启用此选项后,场景视图将包含蓝线,这些蓝线显示遮挡剔除数据中的单元格。单元格大小受__最小遮挡物 (Smallest Occluder)__ 设置的影响:值越小,产生的单元格越多且越小,从而使精度提高并且文件增大。 |
可视化 (Visualize) 模式可让您从给定摄像机的视角预览遮挡剔除的结果。如果选择了某个摄像机,则预览与该摄像机相关。否则,预览与您在可视化模式下选择的最后一个摄像机相关。
| 设置 | 描述 |
|---|---|
| 摄像机体积 (Camera Volumes) | 启用此选项后,您会看到黄线,这些线指示 Unity 为其生成遮挡剔除数据的场景区域。这是根据场景几何体以及您在场景中使用遮挡区域定义的任何视图体积确定的。当摄像机位于黄线之外时,Unity 不会执行遮挡剔除。 您还可以看到灰线,这些线指示摄像机当前位置对应的遮挡剔除数据中的单元格,以及当前单元格中的细分。最小孔 (Smallest Hole) 设置定义了单元格内细分的最小大小:值越小,每个单元格中产生的细分越多且越小,从而使精度提高并且文件增大。 |
| 可见性线条 (Visibility Lines) | 启用此选项后,您会看到绿线,这些绿线指示当前选择的摄像机可以看到的内容。 |
| 入口 (Portals) | 启用此选项后,您可以看到一些线代表遮挡数据中单元格之间的连接。当前可见的入口是当前所选摄像机可以看到的入口。 |