4、矩形光源与天光:面光源特性、Sky Light设置、HDRI环境贴图、实时捕获
大家好,我是你们的老朋友。今天我们来聊聊光照系统里两个非常有意思的角色——矩形光源和天光。说实话,这两个东西在项目里用好了,画面质感能直接上一个台阶。我最早接触UE5的时候,总觉得光照嘛,无非就是点个灯,亮就完事了。后来被美术总监怼了几次,才真正开始琢磨面光源和天光的门道。
好,咱们直接进入正题。
4.1 矩形光源:不只是个“扁灯泡”
矩形光源,英文叫Rect Light。它本质上是一个面光源。你想想看,现实世界里哪有那么多点光源?日光灯管是长的,窗户是方的,柔光箱是矩形的。所以矩形光源模拟的就是这种“面积发光”的效果。
它跟点光源最大的区别在哪?
点光源从一个点向四面八方发射光线,阴影边缘非常锐利。而矩形光源从一个面发射光线,阴影边缘会有一个柔和的过渡。这个过渡的宽度,取决于光源的大小和距离物体的远近。光源越大,离物体越近,阴影就越软。
核心特性总结:
- 方向性:矩形光源有明确的发射方向,默认是朝向Z轴负方向(向下)。你可以旋转它来改变光照角度。
- 柔和的阴影:这是它最大的价值。能产生非常自然的软阴影,特别适合模拟窗户光、补光、或者任何大面积光源。
- 衰减:UE5的矩形光源默认使用平方反比衰减,但你可以调整衰减半径来手动控制光照范围。
- Source Width / Source Height:这两个参数直接控制光源的物理尺寸。尺寸越大,阴影越软,光照范围也越广。
我个人习惯,在做室内场景时,窗户位置一定会放一个矩形光源。把尺寸调到跟窗户一样大,颜色稍微带一点淡蓝(模拟天空散射光),效果非常真实。我曾经在一个样板间项目里,为了模拟傍晚的阳光透过百叶窗的效果,用了十几个矩形光源组合,配合体积雾,那个光影层次感,甲方看了直接说“就是这个味儿”。
4.2 天光(Sky Light):场景的“底色”
天光,说白了就是模拟整个天空环境对物体的照明。它不关心太阳在哪,它只关心“天”是什么颜色,什么亮度。在UE5里,天光是一个非常重要的间接光照来源。
天光的工作原理:
天光会从场景中捕获一个“环境图”,然后把这个图作为光源,从四面八方照亮场景中的物体。这个环境图可以来自三种方式:
- 手动指定的Cubemap纹理
- 实时捕获场景
- 关联到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帧。
知识体系结构图
下面这张图,是我梳理的本章节核心逻辑。你可以把它当作一个思维导图来看。
这张图把矩形光源和天光的核心知识点串在了一起。左边是矩形光源,强调面光源特性和参数控制;右边是天光,重点在HDRI和实时捕获。两者最终都服务于同一个目标——让场景光照更真实、更自然。
好了,关于矩形光源和天光,我就讲这么多。你想想看,其实很多看起来复杂的光照效果,拆解开来就是这些基础元素的组合。下次你在场景里打光的时候,不妨多想想:这里用矩形光源会不会比点光源更自然?天光的HDRI是不是该换一张了?
希望这些经验对你有帮助。咱们下节课见。