Skip to main content

4. 案例研究:世界设计实用技巧

《The Devouring (吞噬者)》是VRC中一个利用遮挡剔除技术以最大化Unity性能的大型地图。以下是其开发者的一些建议:

  • 不要忘记,遮挡是使用不透明的网格渲染器作为遮挡物来计算的。透明材料不会产生遮挡效果。复杂的边缘是不利的。
  • 如果你想为一个大型且复杂的世界优化你的烘焙,特别是一个有“区域”的世界,在不应相互可见的区域之间添加大型遮挡方块。将这些设置为EditorOnly。
  • 一个有趣的实现遮挡的方法是不将你的实际网格设置为遮挡静态,而只使用方块制作遮挡物,并为所有这些遮挡物使用一个显眼的材料(并将这些对象设置为EditorOnly)。这可以避免遮挡烘焙时与更复杂的几何形状相关的问题。

image-1643384385653.png

《吞噬者》中使用的遮挡预制件。注意它们是在墙壁后面的。

  • 如果这些对象在你的场景中视觉上令人分心,可以将材料上的着色器更改为“隐形”着色器,以便在工作时关闭你的遮挡物。(记得将其切换回不透明着色器以进行烘焙。)
  • 在这种情况下,它们仅位于墙后,且宽度相同。对于装饰性柱子,它们会在内部——例如,如果柱子或墙上有一个小的凹陷,你不希望在仅查看那个区域时出现闪烁。一般来说,让你的假遮挡物比暴露的边缘略小。
  • 如果你在场景的内部看到粉红色,你知道你可能会得到错误的遮挡阳性反应。如果你在外部看不到粉红色,你知道那是你的遮挡中的一个缺口。

《吞噬者》由模块化资产制成。所有的墙都在预制件中包含遮挡盒,这简化了遮挡设置、烘焙,并消除了大量的遮挡错误。你也可以在场景中看到它们作为粉红色的墙,并且可以相当容易地看出它们的工作位置。这与一个单独的游戏对象中的巨大遮挡物结合在一起,仅用于烘焙时启用。

  • 对于大型地图中的块,遮挡区域非常有用,但要注意,在Unity2018中你有时会在VR中经过某些区域,遇到“闪烁”——非常令人沮丧,我们找不到解决办法。
  • 在遮挡烘焙完成时,Unity 2018的工作非常令人失望,因为它会在编辑器中隐藏物体。更改你的烘焙设置为在工作时较不明确的设置,以便轻松清除和快速重新烘焙。准备好优化时再进行更详细的烘焙。
  • 在设计世界时考虑遮挡。如果你不需要一个开放空间,就在那里建一堵墙。在走廊中加入角落和之字形来遮挡另一侧。如果它们没有展示东西,就阻挡大型开放视野。尝试阻止玩家一次看到太多——这对于派对实例尤其如此,当遮挡玩家时,这是你可以进行的最大的性能提升之一

image-1643384451136.png

《吞噬者》中遮挡走廊的一个例子。