5.4 Lumen 全局光照与后处理 本节摘要:Lumen 把全局光照从离线烘焙搬进实时,靠的是表面缓存与最终聚集的组合;后处理栈则在光照之后接管曝光、抗锯齿与质感收尾。本节讲清动态光照的账目结构、软件与硬件两档追踪的差异,以及后处理各通道的叠加成本。 关灯之前,先看账本 烘焙光照时代的光照预算是一次性预付:美术在离线渲染里等几十分钟,换运行时几乎免费的光照贴图,代价是光源冻结——天黑了太阳不会落,门开了房间里没有光溢出。Lumen 把这笔账改成按帧现付:光源随便动、时间随便变,每帧都要重新回答"光从哪来、弹了几次、落在哪"。回答的方法有讲究,方法选错,一帧几毫秒的光照账单能让前面的几何优化全部白做。 本节是第五章的收口:材质与几何之后,光与最终画面是仅剩的两笔。
本节摘要:Lumen 把全局光照从离线烘焙搬进实时,靠的是表面缓存与最终聚集的组合;后处理栈则在光照之后接管曝光、抗锯齿与质感收尾。本节讲清动态光照的账目结构、软件与硬件两档追踪的差异,以及后处理各通道的叠加成本。
烘焙光照时代的光照预算是一次性预付:美术在离线渲染里等几十分钟,换运行时几乎免费的光照贴图,代价是光源冻结——天黑了太阳不会落,门开了房间里没有光溢出。Lumen 把这笔账改成按帧现付:光源随便动、时间随便变,每帧都要重新回答"光从哪来、弹了几次、落在哪"。回答的方法有讲究,方法选错,一帧几毫秒的光照账单能让前面的几何优化全部白做。
本节是第五章的收口:材质与几何之后,光与最终画面是仅剩的两笔。它同时为第六章的表现层提供光照语境(特效要融入光照才可信),并在第九章作为"开不开动态光照"的决策输入。
实时算全局光照的难点在于:光会在场景里无限次反弹,逐条追踪光线的费用没有上限。Lumen 的思路是把账拆成两段。第一段是表面缓存:引擎在后台把场景里每个表面预先渲染成一张"从任意角度看都成立"的简化卡片,光是打在这些卡片上而非真实几何上——相当于把无限细节的反弹计算压缩到有限的缓存查询。表面缓存需要按光源变化更新,场景越大越动态,这块后台成本越高。第二段是最终聚集:对每个着色像素,沿反射方向发出少量查询,先查屏幕空间已有的颜色(最近一帧的渲染结果,几乎免费),查不到再查距离场或硬件光线追踪。两段合起来,"光弹几次"有了有限的上限。
软件与硬件两档的差别就在第二段的后半程。软件档用有向距离场近似场景几何:不需要显卡的光追特性,平台覆盖广,代价是距离场是粗糙近似——薄墙可能漏光、细节结构被抹平,大世界还需开起距离场生成与流送。硬件档调显卡的光线追踪单元打真实三角形:精确、漏光少,代价是平台门槛(显卡与图形接口)与更高的每帧开销,且只有 Nanite 与部分网格体能提供追踪几何。选档判断一句话:硬件够得着、画面以镜面反射与精细漏光为卖点,上硬件档;追求覆盖面与稳定帧预算,软件档是默认答案。

光照算完后,画面还不是最终样子。色调映射把高动态范围的颜色压缩进屏幕能显示的范围,自动曝光随之工作——从暗巷走进亮堂的大厅,画面先过曝再慢慢回落,那就是自动曝光在逐帧调参;不想要回落过程就锁定曝光值。抗锯齿在第五代默认走时序超分:利用前后帧信息放大分辨率并抹平锯齿,画质与性能的平衡可调档位;快速运动下的拖影残像是其固有代价。泛光让高亮区域自然溢光,屏幕空间反射给地面加倒影,运动模糊补足低速快门感。每个通道都按全屏计费,预算纪律是"通道清单按美术需求裁剪",而不是全开再调数量级。
背景:旧项目一间展示厅用烘焙光照,现在要求支持昼夜循环与动态开门漏光。目标:迁移到 Lumen 并把光照预算控制在原帧时间以内。
操作:第一步,关掉所有光源的烘焙参与,删除光照贴图相关设置,项目设置里启用动态全局光照与 Lumen,软件档起步。第二步,清理距离场质量差的资产:超薄墙面加厚或用双面处理,避免漏光斑。第三步,在统计面板观察光照相关开销,发现间接光照有噪点闪烁,把最终聚集的质量档从默认上调一档并用时序叠加压噪点,帧时间涨了约两毫秒。第四步,尝试硬件档对照:画质细节更好但帧时间再涨,目标平台下不划算,退回软件档。第五步,后处理核对:曝光改为自动适应,时序超分调到平衡档,关闭了本项目用不上的镜头光晕与晕影通道。
结果:太阳按一天时间移动,开门时走廊光真实溢入,帧时间增量约三毫秒,控制在预算内。
解读:三毫秒就是这笔光照账单的金额,拆开看:表面缓存更新占小头,最终聚集质量档占大头,硬件档再翻一倍——三档成本清晰可退。噪点闪烁是实时聚集采样的固有现象,用质量与时序叠加换稳定是标准交易,而不是"关掉 Lumen"这种一刀切。变式一:大世界的户外场景——软件档加距离场流送,配合天空光,第九章的世界分区章节会给出完整配置。变式二:低成本平台——Lumen 关闭后退回屏幕空间光照加烘焙,同一场景做两套光照方案按平台分发,这正是"双方案"的意义。
常见坑:把屏幕空间反射当万能倒影。它只看得到屏幕里已有的像素,物体出画倒影即断——大面倒影交给 Lumen 反射或平面反射,屏幕空间反射只做近景补充。
问:Lumen 场景里光源数量还重要吗?
重要。动态全局光照解决的是"光怎么反弹",不解决"光源本身的直射成本"——直射照样按光源逐个计算。大量装饰光源的正确姿势是:多数用自发光材质伪造发光观感、少量真正参与照明、投影只在关键光源上开启。5.4 案例里"夜晚四倍光源数"的教训就是直射账单,不是反弹账单。
问:表面缓存的更新会不会造成卡顿?
更新是分散在多帧里执行的,单帧尖峰少见;真正的尖峰来源是大面积场景突变(爆炸掀翻一片物体、大量门同时开关)让缓存集中失效。缓释手段是错开这些事件的时序,或对可预知的突变区域提高缓存更新优先级,提前而不是事后更新。
问:自动曝光在洞穴进出时来回晃,怎么治?
这是自动曝光的固有行为:按画面平均亮度逐帧适应。治疗三选一:锁定曝光值(洞穴与户外分区域设置)、加长适应速度让过渡更柔和、或用区域控制让关键玩法区域曝光稳定。晕动敏感的玩家对曝光抖动非常明显,这属于体验问题而不只是技术参数。
动态光照场景的验收建议固定三个机位:正对光源的逆光角(查漏光与晕圈)、两面墙夹的转角(查反弹与色彩溢出是否可信)、快速旋转的室内平移(查噪点与时序稳定性)。三个镜头过了,多数光照事故已经拦截在发布前——这组镜头可以写进项目的日常体检清单。