Skip to main content

3. 如何为遮挡剔除设置场景

默认情况下,Unity会将整个场景放入一个称为视图体积的大空间块中。

如果你在场景中放置一个遮挡区域,Unity将只为该空间内部计算遮挡数据,这可以使遮挡数据大大减小。如果你的场景被分割成多个独立区域,考虑用遮挡区域覆盖它们,而不是让Unity计算整个场景作为一个大体积。

你可以从对象的静态标志或遮挡窗口进行遮挡设置。

image-1643384082055.png

遮挡剔除的简单推荐设置

只有大的、实体的东西该是遮挡物

这是一个简单的经验法则。如果它小,或透明,或者有洞,它就不应该是遮挡物。树不应该是遮挡物,因为它们有叶子,这些叶子会创建许多微小的洞,这些洞无法通过遮挡来表示。复杂的边缘是不好的。

如果它总是可见的,不要使其成为被遮挡物

如果你有一个天空盒或由巨大平面构成的海洋,让它被遮挡是没有意义的。误报的数量将超过性能的增益。

使较小的对象成为被遮挡物,但不是遮挡物

仅仅因为某物小并不意味着它不会从遮挡剔除中受益。

使用EditorOnly标签来创建假遮挡物

如果一个对象有“EditorOnly”标签,它不会在游戏中渲染。然而,在烘焙过程中仍将考虑它。

image.png

我如何预览遮挡剔除?

在Unity 2018中,遮挡剔除影响场景相机。除此之外,如果你在遮挡窗口中选择可视化,你可以从场景中相机的角度看到遮挡剔除是如何工作的。

当你选择可视化时,场景层次结构将被过滤以仅显示带有相机组件的对象,并显示当前活动相机视角的遮挡剔除。你可以看到相机使用的光线投射和光线投射对抗的低分辨率场景,以确定什么被遮挡以及在哪里被遮挡。

要恢复正常,请切换到遮挡窗口中的其他标签或关闭它。

"烘焙"设置是什么意思?

在遮挡窗口中,有一个包含一些设置和一块文本的“烘焙”部分。正如文本所指出的,你实际上不需要更改设置,因为它们已经调整为速度和性能之间的良好平衡。

最小孔洞设置了被视为“孔洞”的几何间隙的阈值,可以通过该孔洞看到。这个值越小,生成遮挡的时间就越长。将此值设置为适合你的场景的值,理想值在0.05到0.5之间(5cm到50cm)。

最小遮挡物设置了烘焙遮挡数据将考虑多少细节。这个值越小,计算遮挡时会考虑更多的小物体,并且在运行时计算可见内容时,遮挡将进行更多的计算。将此值设置为略大于平均玩家大小的值,因此为2-6(2m到6m)。

如果你想了解更多关于它们的信息,请访问Unity博客上的这篇文章,以便更深入地解释了它们。