Skip to main content

关于Unity内置生成光照贴图的初学者指南

(不幸的是,这篇更像是一个*悲观*的指南)

本节将介绍如何使用 Unity 内置的烘焙工具。 Unity 提供了三种光照贴图制作选项。

  • Enlighten 屡试不爽,但非常过时,而且在较新的 Unity 版本中使用它已经不值得。
  • Progressive 烘焙工具因为它们的特殊功能组导致其有许多 Bug,特别是在 Unity 2018 中。

如果你使用 Enlighten,你同样也可以使用实时 GI(全局照明)。实时 GI 会生成一个 meta 光照贴图,存储光照贴图各部分所能看到的内容,然后在场景实时运行时计算光照,并在光照发生变化时刷新。如果你想制作电影院或是变化光源,这是非常好的。但是这需要保持地图的大小较小,否则为了视觉效果而更新光照贴图的速度将会很慢。Realtime GI 同样影响性能表现,即使它刷新速度很慢。如果你不需要它,就关掉它。请在接下来的章节中牢记这一点。

The Lighting Window

在 The Light Window 中,您可以为内置光源贴图配置最重要的设置。我将逐一介绍。

 对于环境照明来说,我推荐使用天空盒模式,并且始终在场景中应用天空盒以体现你想要的环境光。将强度系数始终保持在1。环境模式应与你是否希望天空盒改变光照(使用实时光)或天空盒是静态的(使用烘焙光)相匹配。

对于环境反射来说,最好使用天空盒或者场景中的自定义探针。想了解更多细节,请看我的反射探针指南。切勿留空。

实时光源 - 你需要吗?如果不需要,确保将它关闭。

混合光源 - 像之前说过的,这些是混合光源模式,仔细地选择。

光照贴图设置 - 这是你做出选择的地方。如果你关闭实时或烘焙 GI ,不同的选项将被关闭。这些选项主要影响最终结果。这些是 Enlighten 的选项,因为进一步的选项在 Unity 文档中有更好的解释。

* 间接分辨率设置实时 GI 中的光照贴图大小。这对烘焙的静态光照贴图没有影响。

* 光照贴图分辨率设置烘焙的光照贴图的纹理元素大小。你可以通过在场景视图的右下角选择烘焙过的光照贴图来看每个物件上应用了几个纹理元素。

* 光照贴图填充设置光照贴图上每个对象之间的间隙大小,但你很少需要使用它。

* 光照贴图大小设置光照贴图能够被生成的最大大小。如果一个物件有一个大小很大的光照贴图,或者其在场景中的比例很大,他将被压缩以融入这些纹理当中,并且如果更小的话,它将被与其他小的纹理一同分组,直到填充整张光照贴图。更大是更好的,但是 Unity 并不擅长将他们填充得紧密,所以小物件的更大的光照贴图经常有大块区域被浪费。

* 压缩光照贴图应该始终打开。如果不压缩的话,光照贴图可以变得非常的大。

* 环境光遮蔽将在光照贴图的角落增加额外的暗处,这可以提升视觉效果,即使它不是与实际相符的。

* 最终收集(Final Gather)将提升最终结果的视觉效果,使其看起来更好。然而这需要额外的烘焙时间。

* 方向模式决定方向性光照贴图是否被生成。普通光照贴图如果需要与烘焙光源一同使用,则需要方向性光照贴图。

* 间接强度改变间接光源的强度高低。该文档显示它应该是光照贴图的直接系数。

* 反射率增强使对象的基础颜色变得更亮。该文档显示它能让东西变白,但实际情况似乎并非如此。

* 光照贴图变量是一个有这更多难以解释的设置的单独的设置文件。想了解更多请查阅 Unity 的相关文档。