后处理、光照烘焙与灯光类型:把“画面质感、性能与可控性”绑在一起
这篇主要聊三件事:后处理(Post-Processing)、光照烘焙(Light Baking)、灯光类型与用法。不重复前两篇里关于渲染路径、Lumen、材质实例那套。目标很朴素:好看、好跑、好调。
1)后处理:从“滤镜堆叠”到“摄影机体系”
1.1 心法三句
-
先定曝光再调色:曝光没定住,再好的 LUT 也是翻车。
-
风格是曲线,不是开关:用“体积(Volume)/体积融合”做过渡,别一刀切。
-
性能预算写在白墙上:DOF/SSR/体积雾是大头,色彩/曲线最划算。
1.2 Unreal:Post Process Volume(PPV)工作流
-
全局 vs. 局部:建一个 Unbound = true 的全局 PPV 做“底片”,在区域里再放局部 PPV(洞穴、室内外过渡)用 Priority/Blend Weight 叠加。
-
相机是“第一调色台”:把曝光(Auto/Manual、Histogram)、白平衡、快门/ISO放在相机资产;PPV 里只做“创作意图”(曲线、色彩、锐化、Bloom、景深阈值)。
-
三个常用预设
-
Gameplay:轻 Bloom、弱 Vignette、禁强景深、禁运动模糊或极弱;TAA 尖锐度微调。
-
Cutscene:物理景深 + 电影颗粒;运动模糊调到“看得见但不打架”。
-
Photo Mode:放开所有“贵项”,单帧截图优先。
-
-
常见坑
-
链路重复:材质里又做色偏/锐化,PPV 再做一遍 → 反复叠加。
-
景深闪烁:对近物 + 透明叠加多、对焦点跳变大。用对焦时间常数/Clamp 焦距稳住。
-
体积雾穿帮:与天空盒/雾高度不匹配,远处地平线变脏。用高度雾衰减和密度曲线。
-
1.3 Unity:Volume + Profile(URP/HDRP)
-
统一思路:Global Volume 当底片,Local Volume 拉风格(走廊、Boss 房)。靠 Priority + Weight 平滑过渡。
-
URP vs HDRP 的习惯
-
URP:追帧率 → 少用高成本 DOF/SSR,色彩、曲线、锐化拿满。
-
HDRP:物理相机 + ACES 起步,按镜头焦段和光圈来推景深;体积雾要和灯光体积一起校。
-
-
调色顺序:曝光→白平衡→对比→曲线/二级色→LUT(可选)→颗粒/晕影。
-
查表工具:波形图 / 直方图 / 矢量示波(HDRP 有调色监视器;没有就用截图 + 外部工具)。
1.4 性能排序(两家都适用,粗略经验)
最贵到最便宜:景深(散景) ≈ 屏幕空间反射/接触阴影 > 体积雾/体积云 > 运动模糊(矢量场) > Bloom > 色彩/曲线/LUT/锐化。
经验法则:游戏时轻量、过场时放开、截图时全开。
2)光照烘焙:把“光能”装进贴图与体积里
2.1 为什么还要烘?
-
性能:静态间接光与软阴影最贵,把它们提前算掉。
-
稳定:无噪、无闪,移动端与低端 PC 的唯一稳解。
-
可控:艺术家能“雕刻”光影层次(灯光贡献、AO、反弹色)。
2.2 Unreal:Lightmass / GPU Lightmass 实用清单
-
静态分类:
-
Static Light → 完全烘焙,不能动。
-
Stationary → 颜色/强度可改,对静态几何的直射阴影烘焙,对可动体用实时阴影;间接光入烘焙。
-
Movable → 全实时,不进烘。
-
-
给动态物体补“环境”:开启并布好 Volumetric Lightmap(VLM) 密度,移动物体就能“吃到”烘焙的间接光与阴影气氛。
-
贴图与密度
-
资产必须有独立 Lightmap UV(无重叠、足够间距)。
-
用“Lightmap Density 视图模式”看每米像素(Texels per Meter):
- 背景/大面:16–32 tpm;主视觉:64–128 tpm;小件:8–16 tpm。
-
大件优先分图集,避免一个 4K 图集塞满小碎片导致过滤脏。
-
-
质量参数(思路,不抛具体魔法数):反弹次数决定色漂与亮度,间接质量/平滑度权衡噪点与清晰;先出草稿(低样本),定构图后再高质量回烤。
-
发光材质进烘焙:把发光当“发射体”,但控制发光面积与强度,避免光能泄露。
-
典型故障排查
-
接缝亮/暗:UV 坐标精度 + padding 不足;分辨率不均。
-
角落脏块:平滑度过低/间接样本不足;几何体有非流形小缝。
-
Stationary 打架:局部重叠太多,换 Baked/Movable 或减少重叠区。
-
2.3 Unity:Progressive Lightmapper(CPU/GPU)
-
灯光模式
-
Baked:只对静态几何生效,完全进 Lightmap。
-
Mixed:烘直射 + 实时阴影的混合。
-
Shadowmask:近远都用烘焙的静态阴影遮挡动态体(阴影来自遮罩贴图);
-
Distance Shadowmask:近处用实时阴影,远处切烘焙阴影。
-
-
Realtime:完全实时,不进烘。
-
-
轻量同款“VLM”:Light Probes 给动态体补间接光(插值);体量大就用自动/手动布点。
-
分辨率与图集
-
统一口径用 Texels per Unit(项目制订 10、20、40 tpu 等档位),按“主视觉 > 次要 > 背景”去分配。
-
Directional Lightmap(有方向的光照贴图)能保留法线/高光方向性,代价是体积与采样。
-
适度开启压缩与降噪,避免被 DXT/BC 压花吃掉细节。
-
-
GPU Lightmapper 注意:显存不足会退回 CPU;多场景/大图集时谨慎拉最大图集尺寸。
-
常见问题
-
阴影“蹭”与“漂”:混合灯的 Shadowmask 模式与实时阴影半径不一致;统一阴影半径、Bias、法线偏移。
-
光漏:墙体薄、模型相交(非封闭体);加厚墙体、用 Double-Sided GI 或修网格。
-
烘不出来:对象没勾 Static(Contribute GI),或者材质发光没开启对 GI 的贡献。
-
小总结:UE 用 VLM + Stationary 把“动态也吃烘焙”的体验做得顺滑;Unity 靠 Light Probes + Mixed(Shadowmask/Distance),思路一致,术语不同。
3)灯光类型与性能:别让烟雾弹掩护了帧数
3.1 Unreal 的三段火力
-
Static:最便宜,全进贴图;只能装“舞美”。
-
Stationary:现场可调强度/颜色,静态阴影烘焙 + 动态体实时阴影;用于主灯、橱窗等半动态需求。
-
Movable:完全实时,最贵。移动的探照灯、手电、角色挂点灯只能它。
-
Lighting Channels:把灯光分组让它只打特定对象(人物高光专灯、路灯不打远景),既“艺术定向”又省钱。
-
阴影家族:级联/虚拟阴影图、接触阴影、体积阴影。策略是一主(主光)一辅(关键补光),其余尽量不打实时影。
3.2 Unity 的三种模式
-
Baked / Mixed / Realtime 概念如上。实际用法给一条**“一主多辅”**的配方:
-
Directional(主太阳):Realtime 或 Mixed(近实时、远 Shadowmask);
-
环境/天光:环境光(Sky/Skybox)+ 烘焙间接;
-
点/射灯:能 Baked 就 Baked,必须动才给 Realtime,并限制同屏带阴影的数量(<= 2–3)。
-
3.3 IES / Cookies 与“假戏真做”
-
IES(光度曲线):把真实灯具的配光导入,室内戏精度立刻上去;成本≈普通阴影灯。
-
Cookies:用贴图做光斑/窗格,比多盏小灯便宜。
-
小建议:先做形,再做量——一个对的 IES/Cookie 胜过十个没边缘的点光。
3.4 级联阴影 & 距离策略
-
Directional:2–4 级联够用;把“最后一层”拉远一点,近处层数给多些;配合接触阴影补细节而不是瞎加分辨率。
-
点/射灯:分辨率按“镜头亲近度”分层,移动端优先关闭软阴影或用更快的 PCF。
4)一线落地:两条“从零到可交付”的流程
4.1 室内关卡(性能敏感)
-
定光型:主灯 Stationary/Mixed + 少量 Baked 辅灯;所有静态几何 进烘焙。
-
密度与图集:按“主视觉 64–128 tpm / 背景 16–32 tpm”,先上低档试烤,再提档。
-
体积/探针:UE 开 VLM,Unity 密布 Light Probes 在走道/门洞。
-
后处理:弱 Bloom、无散景景深;色彩先 ACES/Neutral,再小范围 LUT;保留“昏暗但可读”的对比。
-
验证:烘焙预览(草稿)→ 调光位 → 高质量烤 → 帧率/显存回看 → 只对“看得见”的灯开实时影。
4.2 户外大场景(观感优先)
-
主太阳 + 天空:Directional(Realtime/Mixed)+ 天空/环境;阴影级联按“近处质量优先”。
-
局部叙事光:门洞、棚下用 Cookies/IES 打重点;少量 Movable 做动态叙事。
-
间接:广域用烘焙/探针兜底;洞穴/树荫做局部体积雾加强层次,严控采样步长。
-
后处理曲线:白天、黄昏、夜晚各自 Volume,靠 Priority/Blend 连起来;统一色温故事线(白天冷、黄昏暖)。
-
验证:不同天气/一天中不同时段走查读屏性;把“最差角度/逆光”列进验收清单。
5)常见疑难速解(FAQ)
-
“阴影一抖一抖的”:级联分割太激进 + 相机抖。给近处更多预算,锁定稳定的分割方案;调小阴影 Bias 与法线偏移的“打架”。
-
“墙角发黑像脏了”:AO/间接平滑堆太狠;提高间接样本、拉高平滑度或补点小 Fill Light(烘焙的)。
-
“景深卡爆了”:移动端/主机 60fps 严禁大半径散景;过场再开。
-
“室内太灰/太黄”:先校白平衡与曝光,再去改曲线;别用饱和度硬拉。
-
“烘焙时间爆炸”:把光能贡献不明显的灯改 Baked 直射=0(只要间接),或合并小件、降低图集上限;用“草稿参数”找对结构后再高质量。
6)一页纸复盘
-
后处理:相机先定曝光 → 全局 Volume 打底 → 局部 Volume 拉风格 → 高成本特效只在过场/截图开。
-
烘焙:UE 走 Lightmass/GPU Lightmass + VLM,Unity 走 Progressive(CPU/GPU)+ Light Probes;统一每米像素规范,草稿->终稿两段法。
-
灯光:UE(Static/Stationary/Movable)、Unity(Baked/Mixed/Realtime)各有名词,但同一逻辑:能烘就烘,必须动才实时;少而精的实时阴影。
-
验证:把“复杂度视图/阴影调试/Frame Debugger”当日检,读屏性优先于“滤镜的野心”。
走到这一步,你已经有一整套“光与影的工程化”打法:用后处理定风格、用烘焙稳底色、用灯光类型控预算。下一篇我们再把视角抬到天空与移动端着色差异,把“同一美术、不同平台”这道坎迈过去。