4、矩形光源与天光:面光源特性、Sky Light设置、HDRI环境贴图、实时捕获

大家好,我是你们的老朋友。今天我们来聊聊光照系统里两个非常有意思的角色——矩形光源和天光。说实话,这两个东西在项目里用好了,画面质感能直接上一个台阶。我最早接触UE5的时候,总觉得光照嘛,无非就是点个灯,亮就完事了。后来被美术总监怼了几次,才真正开始琢磨面光源和天光的门道。

好,咱们直接进入正题。

4.1 矩形光源:不只是个“扁灯泡”

矩形光源,英文叫Rect Light。它本质上是一个面光源。你想想看,现实世界里哪有那么多点光源?日光灯管是长的,窗户是方的,柔光箱是矩形的。所以矩形光源模拟的就是这种“面积发光”的效果。

它跟点光源最大的区别在哪?

点光源从一个点向四面八方发射光线,阴影边缘非常锐利。而矩形光源从一个面发射光线,阴影边缘会有一个柔和的过渡。这个过渡的宽度,取决于光源的大小和距离物体的远近。光源越大,离物体越近,阴影就越软。

核心特性总结:

  • 方向性:矩形光源有明确的发射方向,默认是朝向Z轴负方向(向下)。你可以旋转它来改变光照角度。
  • 柔和的阴影:这是它最大的价值。能产生非常自然的软阴影,特别适合模拟窗户光、补光、或者任何大面积光源。
  • 衰减:UE5的矩形光源默认使用平方反比衰减,但你可以调整衰减半径来手动控制光照范围。
  • Source Width / Source Height:这两个参数直接控制光源的物理尺寸。尺寸越大,阴影越软,光照范围也越广。

我个人习惯,在做室内场景时,窗户位置一定会放一个矩形光源。把尺寸调到跟窗户一样大,颜色稍微带一点淡蓝(模拟天空散射光),效果非常真实。我曾经在一个样板间项目里,为了模拟傍晚的阳光透过百叶窗的效果,用了十几个矩形光源组合,配合体积雾,那个光影层次感,甲方看了直接说“就是这个味儿”。

4.2 天光(Sky Light):场景的“底色”

天光,说白了就是模拟整个天空环境对物体的照明。它不关心太阳在哪,它只关心“天”是什么颜色,什么亮度。在UE5里,天光是一个非常重要的间接光照来源。

天光的工作原理:

天光会从场景中捕获一个“环境图”,然后把这个图作为光源,从四面八方照亮场景中的物体。这个环境图可以来自三种方式:

  1. 手动指定的Cubemap纹理
  2. 实时捕获场景
  3. 关联到Sky Atmosphere(天空大气)组件

嗯,这里要注意。如果你用的是UE5的Sky Atmosphere,天光会自动从大气中捕获光照信息。这是最推荐的方式,因为天空颜色会随着太阳位置动态变化,天光也会跟着变,非常省心。

我的小技巧:

如果你发现场景整体偏暗,或者间接光照不够,先别急着加一堆点光源。检查一下天光的强度。很多时候,把天光强度从1.0提高到1.5或2.0,整个场景的暗部细节就全出来了。我在做户外场景时,天光强度经常调到3.0以上,配合后期处理,效果很通透。

4.3 HDRI环境贴图:给天光“换皮肤”

HDRI,全称High Dynamic Range Image。它是一张包含了极高亮度范围信息的图片。普通图片最亮和最暗的差别可能只有几百倍,而HDRI可以做到几万倍甚至更高。

在天光里使用HDRI,相当于给场景套了一个“真实的环境”。比如你放一张黄昏的HDRI,天光就会把黄昏的颜色和亮度信息投射到场景中,物体的反射和阴影都会带有黄昏的色调。

怎么设置?

很简单。选中天光Actor,在细节面板里找到“Sky Light”分类:

  • Source Type 设置为 SLS Specified Cubemap
  • Cubemap 槽位里,拖入你的HDRI纹理
  • 调整 Intensity 来控制亮度

我建议你准备几套常用的HDRI:晴天、阴天、黄昏、室内。不同场景换着用,效果立竿见影。记得有一次,一个夜景项目,我用了张城市夜景的HDRI,天光直接把远处的城市灯光反射到近处的汽车漆面上,那种真实感,比手动打光强太多了。

避坑指南:

我曾经犯过一个错误——用了分辨率太低的HDRI。结果天光照出来的反射全是糊的,像蒙了一层雾。后来才意识到,HDRI的分辨率直接影响反射的清晰度。建议至少用2048x1024以上的,如果是特写镜头,4096x2048会更保险。

另外,HDRI的格式要选对。UE5支持.exr和.hdr格式。别用.jpg或.png,它们没有高动态范围信息,用了等于白用。

4.4 实时捕获:让天光“动起来”

实时捕获,就是让天光每一帧都重新捕获场景的环境信息。这样做的好处是,场景里的任何变化——比如移动了物体、改变了灯光颜色、打开了门——天光都会实时响应。

怎么开启?

在天光的细节面板里,找到 Real Time Capture 选项,勾上它。就这么简单。

但是,我要给你泼一盆冷水。实时捕获的性能开销非常大。它相当于每一帧都在渲染一张全景图。如果你的场景很复杂,或者你有很多个天光,帧率会直接崩掉。

什么时候用?

  • 动态时间系统:比如你做了个昼夜循环,太阳在动,天空颜色在变,天光必须实时捕获才能跟上变化。
  • 可破坏环境:墙被打了个洞,外面的光照进来,天光需要实时更新才能模拟这种变化。
  • 角色或物体移动:如果角色身上的反射需要随着位置变化而变化,实时捕获是必要的。

什么时候别用?

  • 静态场景:场景固定不变,直接用HDRI或者烘焙好的光照,性能好得多。
  • 移动端或VR:性能本来就紧张,实时捕获会要了你的命。

我的优化建议:

如果你必须用实时捕获,可以降低捕获的分辨率。在天光细节面板里,有一个 Cubemap Resolution 选项,默认是128。你可以降到64甚至32,虽然反射会模糊一些,但性能提升很明显。我有个项目就是这么干的,玩家根本看不出区别,但帧率从45帧提到了60帧。

知识体系结构图

下面这张图,是我梳理的本章节核心逻辑。你可以把它当作一个思维导图来看。

矩形光源与天光 矩形光源(Rect Light) 面光源特性 柔和的阴影边缘 参数控制 尺寸/强度/颜色 天光(Sky Light) HDRI环境贴图 高动态范围照明 实时捕获 动态环境响应 共同目标:真实自然的场景光照 室内场景:窗户光/补光 户外场景:天空照明/反射 ⚠ 实时捕获性能开销大,按需使用

这张图把矩形光源和天光的核心知识点串在了一起。左边是矩形光源,强调面光源特性和参数控制;右边是天光,重点在HDRI和实时捕获。两者最终都服务于同一个目标——让场景光照更真实、更自然。

好了,关于矩形光源和天光,我就讲这么多。你想想看,其实很多看起来复杂的光照效果,拆解开来就是这些基础元素的组合。下次你在场景里打光的时候,不妨多想想:这里用矩形光源会不会比点光源更自然?天光的HDRI是不是该换一张了?

希望这些经验对你有帮助。咱们下节课见。


专注资料整理