Skip to main content

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

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

  • 不要忘记,遮挡是使用不透明的网格渲染器作为遮挡物来计算的。透明材料不会产生遮挡效果。复杂的边缘是不利的。有复杂的边缘的游戏对象是不利于遮挡剔除的。
  • 如果你想为一个大型且复杂的世界优化你的烘焙,特别是一个有“对于大型且复杂的世界,尤其是那些被划分为多个“区域”的世界,在不应相互可见的区域之间添加大型遮挡方块。将这些设置为EditorOnly。开发者建议使用大型遮挡方块来分隔这些区域。这些遮挡方块应当设置在EditorOnly模式下,这样它们在游戏运行时不会被渲染,但仍然会对烘焙过程产生影响。
  • 一个有趣的实现遮挡的方法是不将你的实际网格设置为遮挡静态,而只使用方块制作遮挡物,并为所有这些遮挡物使用一个显眼的材料(并将这些对象设置为EditorOnly)。这可以避免遮挡烘焙时与更复杂的几何形状相关的问题。对于大型且复杂的世界,尤其是那些被划分为多个“区域”的世界,开发者建议使用大型遮挡方块来分隔这些区域。这些遮挡方块应当设置在EditorOnly模式下,这样它们在游戏运行时将不会被渲染,但仍然会对烘焙过程产生影响。

image-1643384385653.png

《吞噬者》中使用的遮挡预制件。注意它们是在墙壁后面的。请注意,这些预制件被放置在了墙壁的后方。

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

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

  • 对于大型地图中的块,对于大型地图中的区块,遮挡区域非常有用,但要注意,在Unity2018中你有时会在VR中经过某些区域,遇到“但需要注意,在Unity 2018中,您可能会在VR环境中经过某些区域时遇到“闪烁”——非常令人沮丧,我们找不到解决办法。现象,这非常令人沮丧,而我们尚未找到解决方案。
  • 在遮挡烘焙完成时,在遮挡烘焙完成后,Unity 2018的工作非常令人失望,2018的表现令人失望,因为它会在编辑器中隐藏物体。更改你的烘焙设置为在工作时较不明确的设置,以便轻松清除和快速重新烘焙。准备好优化时再进行更详细的烘焙。建议您将烘焙设置在编辑工作时更改为较为粗略的设置,以便于轻松清理和快速重新烘焙。等到准备进行优化时,再执行更细致的烘焙。
  • 在设计世界时考虑遮挡。如果你不需要一个开放空间,就在那里建一堵墙。在走廊中加入角落和之字形来遮挡另一侧。如果它们没有展示东西,就阻挡大型开放视野。尝试阻止玩家一次看到太多—在设计世界时,请考虑到遮挡的因素。如果您不需要一个开放的空间,就在那里建造一堵墙。在走廊中加入转角和Z字形的布局来遮挡另一侧的空间。如果它们没有展示任何东西,就阻挡掉大型开阔的视野范围。尝试避免让玩家一次性看到过多的内容—这对于派对实例尤其如此,当遮挡玩家时,这是你可以进行的最大的性能提升之一这在多人游玩的场景中尤为重要,遮挡玩家视线是您可以实施的最大的性能提升措施之一。

image-1643384451136.png

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