UPL9-13——光照烘焙
UPL9-13——光照烘焙
光照烘焙
提前离线计算场景中的光照、阴影、反射、间接光照等信息,并且将结果保存为贴图或探针数据
在游戏运行时直接使用,从而节省实时计算的性能消耗
为什么可以节约性能
- 实时光照:运行时每帧都需要计算,开销很大
- 烘焙光照:提前计算,运行时直接贴图,几乎零性能开销(因为不用实时计算光照)
说人话:
提前把光照表现算好存储到光照纹理中,运行时直接使用光照纹理中的颜色用于着色
避免实时计算带来的高开销,是典型的 内存换性能 的优化方式
哪些光照信息可以被烘焙
可以被烘焙的光照信息:
-
直接光照
来自光源直接照射到表面的光
-
间接光照
光线在场景中多次反射后的柔和照明
-
阴影
可烘焙静态阴影(不会随动态物体移动)
-
反射
可通过 反射探针(Reflection Probe) 烘焙环境反射
不可被烘焙的光照信息:不支持随时间变化的灯光(包括位置方向和光照强度) 或 移动的光源
如何进行光照烘焙
-
将场景中想要进行光照烘焙的静态物体标记为静态 Static,或 只勾选 Contribute GI(Contribute Global Illumination,参与全局光照)
只有勾选了该选项的物体,才会被当作静态对象进行光照烘焙
注意:动态对象 需要使用 光照探针,不能作为静态对象处理

或者

-
设置灯光模式
- Realtime (实时):每帧实时计算光照,用于动态灯光,比如手电筒、闪烁灯
- Baked (烘焙):只在烘焙阶段起作用,用于完全静态的灯光
- Mixed (混合):同时支持烘焙与实时,常用于主光源(表现太阳光)
建议:
- 太阳光(主光源)用 Mixed (混合)
- 室内灯光(蜡烛、台灯等复杂室内环境光源)用 Baked (烘焙)
- 特效等(会移动或随时间变化的光源)用 Realtime (实时)
-
打开 Lighting 设置窗口
进行相关光照烘焙设置(具体参数请见下文),设置完毕后点击 Generate Lighting,烘焙光照

烘焙关照示例:
假设有这样一个场景,其中平行光是 Mixed 光源,红黄点光源是 Baked 光源,绿色点光源是 Realtime 光源,其他物体全都勾选 Contribute GI

烘焙完成后,将三个点光源都失活,可以看到仅绿色的 Realtime 光源的关照消失,其他光源光照依然存在

在场景上添加一个动态物体,这个动态物体无法只能受到 Mixed 和 Realtime 光源光照影响,而不能受到烘焙后的 Baked 光源光照影响

Lighting 设置窗口烘焙光源相关参数
设置建议:
- 若噪点多,提高 Samples(采样相关参数)
- 若边缘发黑,增大 Lightmap Padding((光照贴图填充))
- 若太亮或太暗,调整 Indirect Intensity(间接强度)

-
Lighting Settings(光照设置)
-
Lighting Setting Asset(光照设置配置文件)
光照设置需要相应的配置文件,如果没有可以在左侧创建或者克隆一个新文件
-
-
Realtime Lighting(实时光照)
-
Realtime Global Illumination(是否使用实时全局光照)
-
Realtime Environment Lighting(实时环境光)
-
Indirect Resolution(实时光照的间接光分辨率)
仅在 Realtime GI 开启时有效
建议: 项目一般关闭此项,仅使用 Baked GI(性能更好、质量更稳定)
-
-
-
Mixed Lighting(混合光照)
-
Baked Global Illumination(是否开启烘焙光照)
我们必须勾选该选项,才能烘焙静态光照
-
Lighting Mode(混合光照计算模式)

-
Baked Indirect(间接烘焙模式,实时内容多,性能开销最大)
只烘焙间接光照(Global Illumination),而直接光照和阴影是实时计算的
常用于完全实时的场景,只想要烘焙的全局光照“氛围”- 烘焙内容:间接光(反射、漫反射反弹)
- 实时内容:直接光、阴影
- 动态物体:可接收实时光和阴影,但不会接收烘焙阴影
- 性能:较高开销(因为直接光仍是实时计算)
- 典型用途:室外场景、昼夜循环、动态光源较多的场景
-
Subtractive(减法模式,实时内容少,性能最好)
一种最简化的烘焙+实时混合模式,主要面向 低端移动平台
只允许 一个主方向光(Directional Light) 提供实时阴影,其余光照全部烘焙进贴图- 烘焙内容:所有静态光源(包括直接光和间接光)
- 实时内容:主方向光的实时阴影
- 动态物体:接收烘焙的静态光照,但只有一个方向光能投影阴影
- 性能:最佳性能(最低开销)
- 典型用途:卡通风、移动端、光照简单的关卡
-
Shadowmask(阴影遮罩模式,最常用)
最常用的 混合光照模式,
结合了烘焙静态光源的间接光照 + 实时光的动态阴影
静态对象的阴影由烘焙贴图提供;动态物体的阴影由实时计算- 烘焙内容:静态光源的间接光照和静态物体间的阴影
(存在于 Shadowmask 贴图中) - 实时内容:动态物体的阴影、光照变化
- 动态物体:接收烘焙光照 + 参与实时阴影
- 性能:较平衡,适合主机/PC
- 典型用途:混合场景(例如:静态建筑 + 动态角色)
- 烘焙内容:静态光源的间接光照和静态物体间的阴影
使用建议:
- Baked Indirect(间接烘焙模式):追求真实实时光照效果
- Subtractive(减法模式):面向移动端
- Shadowmask(阴影遮罩模式) 兼顾质量与性能
-
-
-
Lightmapping Settings(光照贴图设置)
-
Lightmapper(烘焙引擎类型)

- Progressive CPU(CPU烘焙)
- Progressive GPU(GPU烘焙)
GPU 更快但需显卡支持。一般用 Progressive GPU
-
Importance Sampling(重要性采样)
改进采样精度,提高高亮区域的采样密度 建议开启即可
-
采样设置相关
-
Direct Samples(直接光样本数)
每个像素的直接光采样次数
控制直射光精度(阴影锐利度)
32 ~ 128为常用范围 -
Indirect Samples(直接光样本数)
间接光(反射、漫反射)的采样次数
越高光照越平滑但耗时更长。
建议 256 ~ 512 -
Environment Samples(环境光样本数)
环境光(天空盒)的采样次数
影响整体环境光平滑度,默认 256 即可 -
Light Probe Sample Multiplier(光照探针采样倍增倍数)
光照探针采样倍数,默认 4 即可
-
-
Max Bounces(光线最大反弹次数)
光线在场景中反射的最大次数,2 ~ 3 次通常足够,太多会浪费时间
-
Filtering(滤波算法)
控制烘焙后阴影与光照平滑算法

- None:关闭滤波算法
- Auto:自动,推荐方式
- Advanced:高级,阴影颗粒感强
-
分辨率相关
-
Lightmap Resolution(光照贴图分辨率)
每单位世界空间使用多少像素
建议:
- 室内小场景:40~60
- 室外大场景:10~20
-
Lightmap Padding(光照贴图填充像素数)
贴图中不同物体间的像素间隔,
2~4 texel 即可,避免光照互染 -
Max Lightmap Size(最大光照贴图大小)
单张 Lightmap 最大分辨率
1024 ~ 2048,视情况而定 -
Fixed Lightmap Size(是否固定光照贴图大小)
固定 Lightmap 尺寸,具体尺寸由 Max Lightmap Size 决定,一般关闭
-
Use Mipmap Limits(是否使用 Mipmap 限制)
是否使用 Mipmap,限制以节省内存 一般开启
-
-
Lightmap Compression(光照贴图压缩)

- None:不压缩
- Low:低质量压缩
- Normal:普通质量压缩
- High:高质量压缩
选高质量可减少块状伪影
-
环境光遮蔽相关
-
Ambient Occlusion(是否开启环境光遮蔽)
模拟局部阴影(角落、缝隙变暗)
建议开启,可以增加立体感环境光遮蔽(AO)是一种 模拟局部阴影的效果
在模型的缝隙、角落、物体接触面等区域制造微弱阴影,
使场景更有深度感与体积感
AO 不会产生方向性阴影(不随光源方向变化)
它只是让遮蔽区域更暗-
Max Distance(AO 最大作用距离)
AO 的最大作用距离(单位:世界空间距离),控制阴影扩散范围
- 值越大:AO 扩散范围更大,但可能显得“脏”
- 值越小:AO 只集中在贴近处(角落更明显)
一般 0.5 ~ 2,取决于场景比例
-
Indirect Contribution(AO 间接贡献程度)
AO 对间接光照(反射光)的影响强度。
值越高:AO 会更强地抑制反射光亮度,使暗处更暗
一般 0.5 ~ 1 -
Direct Contribution(AO 直接贡献程度)
AO 对直接光照(灯光照射部分)的影响强度。
值越高:即使在有灯照的地方,AO 也会让角落显得更暗
一般 0.1 ~ 0.5
建议:
-
室内高对比场景
- Max Distance:1
- Indirect Contribution:1
- Direct Contribution:0.3
-
室外自然光场景
- Max Distance:2
- Indirect Contribution:0.5
- Direct Contribution:0.2
-
卡通风格 / 简洁风
- Max Distance:0.5
- Indirect Contribution:0.8
- Direct Contribution:0.1
-
-
-
Directional Mode(方向模式,是否存储光照方向信息)
是否存储光照方向信息,对于有法线贴图的场景用 Directional(推荐)

- Directional:存储
- Non-Directional:不存储
-
Albedo Boost(反射率提升强度)
增强表面颜色反射强度,一般保持 1
-
Indirect Intensity(间接强度)
间接光照亮度倍数,调整反射整体亮度,常用范围 1~2
-
Lightmap Parameters(光照贴图参数配置文件)
控制光照贴图细节的模板
(默认包括 Default-Low / Default-Medium / Default-High,也可以自行创建)
一般用 Default-Medium 或 Default-High
-
-
其他设置
-
GPU Baking Profile(GPU 烘焙配置)
使用哪个 GPU 配置进行烘焙,默认Automatic 即可
(仅在 Lightmapper 选择 Progressive GPU 时才可选择)
- Highest Performance(最高性能)
- High Performance(高性能)
- Automatic(自动)
- Low Memory Usage(低内存占用)
- Lowest Memory Usage(最低内存占用)
-
Bake On Scene Load(场景加载时烘焙)

- Never(不烘焙,手动控制)
- If Misssing Lighting Data(如果缺失烘焙数据就烘焙)
-
Generate Lighting(生成光照烘焙数据)
手动开始光照烘焙,烘焙时点击此按钮
-
如何判断是否成功使用了光照贴图
-
查看 Window → Rendering → Lighting → Baked Lightmaps 中是否存在已经生成的光照贴图

-
在 Scene 视图中通过切换选择观察模式来查看光照贴图显示部分

-
查看场景中物体的 Renderer 组件的 Lighting 区域,查看对象是否勾选了 参与烘焙的选项,并且查看 Lightmapping 部分自己是否关联了烘焙的光照贴图

-
检查灯光模式是否使用了 Baked 或者 Mixed

等等
清除光照烘焙
如果要清除光照烘焙,需要在 Lighting 设置窗口下方的 Generate Lighting 按钮右侧点击下三角,会弹出菜单,点击 Clear Baked Data 即可清理光照烘焙

