Skip to content

简介

光照贴图(Lightmap)用于存放烘焙光照时对光源稳定的 静态(Static)游戏对象(Game Object)所受到的光照和阴影等进行预先计算产生的结果。

烘焙光照时生成的光照贴图可以被场景游戏对象 材质(material)的 着色器(Shader)所使用,着色器可以决定是否使用光照贴图以及使用的方式。在光源固定的场景中,使用光照贴图代替实时的光照计算,可以减少性能消耗,从而提高游戏项目的运行效率。

生成方法

生成光照贴图,即烘焙光照需要执行以下步骤:

  • 将需要烘焙光照的场景设置为 主场景(Main Scene),设置主场景的具体方法请参阅 多场景编辑 章节。

【Lightmap000.png】

  • 您可以在 场景编辑窗口(Scene)或者 层级窗口(Hierachy)选中需要生成 光照贴图(Lightmap)的光源所对应的 游戏对象(Game Object),并将他们的移动性设置为 静态(Static),设置游戏对象移动性的具体方法请参阅 游戏对象移动性 章节。

【Lightmap001.png】

  • 打开 光照编辑窗口(Lighting Window)并在 场景模块(Scene Tab)中设置烘焙光照贴图的相关属性,关于启动光照编辑窗口和对应属性代表的内容,请参阅 光照编辑窗口 章节。

【Lightmap002.png】

  • 您可以在 场景编辑窗口(Scene)或者 层级窗口(Hierachy)选中需要生成 光照贴图(Lightmap)的 游戏对象(Game Object)、显示阴影的游戏对象、生成对应光照的光源游戏对象,在确保 光照编辑窗口(Lighting Window)已经打开且选中 场景模块(Scene Tab) 后,在 层级窗口(Hierachy)通过点击选中对象条目关联的 接受烘焙按钮(For Baking),设置选中游戏对象为可被用于烘焙光照贴图的状态。

【Lightmap003.png】

  • 在 光照编辑窗口场景模块中点击 烘焙(Bake) 按钮进行烘焙光照贴图。

【Lightmap004.png】

NOTE

在点击烘焙按钮会弹出烘焙进度弹窗,直至弹窗的进度条为 100% 前请勿在 SandMod 编辑器中执行任何操作。

烘焙后光照贴图资产及信息将储存于当前主场景目录下且与场景同名的文件夹中。

【Lightmap005.png】

定向模式

光照贴图(Lightmap)有两种定向模式:定向(Directional)和 非定向(Non-Directional)。两种模式都与 SandMod 的全局光照(GI,Global illumination)系统的实时光照贴图烘焙的光照贴图兼容。
当您烘焙定向光照贴图时,光照系统会生成两个光照贴图纹理。一种纹理存储有关目标表面接收到的照明的强度和颜色的信息,这为非定向光照贴图所使用的唯一光照贴图纹理。另一个纹理存储主光线方向,以及描述接收到的总光线有多少来自该主方向的因素。

定向模式光照贴图由两个纹理组成,着色器(Shader)在渲染期间对两个纹理进行采样。额外的纹理会增加 GPU 性能要求。生成额外的方向性纹理也会对烘焙性能产生影响。

【Lightmap006.png】

图中的木桩烘焙了定向光照贴图

非定向模式光照贴图仅包含单个纹理。因此,它们比定向贴图需要更少的 GPU 性能和存储空间,并且在着色器中解码速度更快。这些优化降低了视觉质量。

【Lightmap007.png】

图中的木桩烘焙了非定向光照贴图