UE5 学习系列(九)光照系统介绍
这篇博客介绍了 UE5 中的光照系统,UE5 相比较于其他游戏引擎甚至 UE4 的最大优势就是他的光照系统,其提供了非常拟真的光照解决方案,因此这部分内容是非常重要的。
- B 站视频:s06-光照系统介绍
1. 常用光源介绍
在 UE Editor 中可以手动添加光源,最常用的三种区域光源是点光源 Point Light
、聚光源Spot Light
、矩形光源 Rect Light
,你可以在上方工具栏的 添加对象
-> 光源 Lights
中找到,这三种光源照射的范围相对较小,但也相对可控:
因为原始视频中用来演示的场景并没有在他们提供的素材中,因此这里建议使用之前博客 《UE5 学习系列(三)创建和移动物体》 中搭建的环境,目的是营造一个相对暗的场景以感受光源的区别,当然你也可以自己直接重新搭一个空的盒子然后把自己放进去:
1.1 点光源
先进入房子中,然后按照下面的步骤创建一个点光源:
- 在上方工具栏中找到
添加物体
-> 光源Lights
-> 点光源Point Light
; - 鼠标
左键
拖动光源感受环境变化;
光源强度
按照下面的步骤可以修改这个光源的 光照强度:
- 选中光源后在右下角找到细节
Details
标签; - 从中找到光源
Light
中的强度Intensity
; - 鼠标拖着上面的数字感受下变化;
光源颜色
同样是在上一步的细节 Details
中的光源 Light
里,找到光源颜色 Light Color
并点击唤出调色盘调整 颜色:
然后在调色盘中修改光源的颜色:
衰减半径
衰减半径表示的是 光照范围,也是在细节 Details
中的光源 Light
里,找到衰减半径 Attenuation Radius
然后推动数字体验光照范围的变化:
源半径
源半径可以理解为 灯泡的大小,在细节 Details
中的光源 Light
里,找到源半径 Source Radius
然后推动数字感受灯泡大小,这个源半径最重要的效果是 改变影子的虚实:
下面两张图对比了源半径为 0
和 100
的时候植被影子的虚实效果,其实对比效果还是很明显的,灯泡周围的黄色线条就描述了光源的源半径:
源半径 0.0 | 源半径 100.0 |
---|---|
![]() | ![]() |
1.2 聚光源
和点光源一样,通过以下步骤创建一个聚光源 Spot Light
,聚光源就像灯具中的筒射灯。建议先将之前创建的点光源删掉,否则多个光源在同一个房间内相互影响感受不明显:
- 在上方工具栏中找到添加物体中的光源
Ligths
,点击聚光源Spot Light
添加光源; - 拖动光源的三个轴或轴间夹角感受变化;
虽然点光源也能执行旋转,但因为点本身没有方向所以变化不明显,但聚光本身有指向性,这个时候可以对其进行旋转感受角度变化,选中光源后在上方工具栏中切换到 旋转
模式或按键盘 E
键:
锥体内外角度
聚光源本身呈现出来的是一种 “锥体” 形状,因此其重要的参数是控制这个 锥体内外角度,在右侧的在细节 Details
中的光源 Light
里,找到锥体内角度 Inner Cone Angle
和 锥体外角度 Outer Cone Angle
分别拖动感受变化:
1.3 矩形光源
灯具中除了筒射灯外还有一个常用的类型就是平面大灯或者影视行业中用到的 补光灯,矩形光源就是模拟这类光源,按照下面的步骤创建矩形光源,同样建议删除其他无用光源:
- 在上方工具栏中找到添加物体中的光源
Ligths
,点击矩形光源Rect Light
添加光源; - 拖动光源的三个轴或轴间夹角感受变化;
挡板属性
矩形光源的特有属性 挡板角度 和 挡板长度,在右侧的在细节 Details
中的光源 Light
里,找到挡板角度 Barn Door Angle
和 挡板长度 Barn Door Length
分别拖动感受变化:
2. 环境光
这里为了和视频中的操作同步,需要打开新手包中的一个环境:
- 在资源浏览器
Content Drawer
中进入到Content
->Starter Content
->Maps
; - 双击打开
Starter Maps
导入新手地图;
2.1 删除环境光
为了使用自定义的环境光,需要先将右侧大纲中将自带的光源删除:
- 在右侧大纲
Outliner
中找到Lighting
标签; - 点击标签旁边的眼睛按钮
隐藏
整个目录;
体验完效果后直接将这个文件夹按 Del
删除,否则后续的操作无法进行。
删除后你的大纲 Outliner
中应该看不到刚才的文件夹,目的是将场景自带的光都删干净,然后我们手动去添加:
2.2 环境光照混合器
UE 将环境光视作一种特殊的存在和上面的光源不同,想要点亮环境需要多个条件同时存在才可以,这其实更像真实物理环境,因为我们能看见周围的环境一方面是由于物体反射,另一方便是因为空气漫反射, UE 在这里的处理逻辑也基本类似。
【Note】:由于编辑器版本问题,在这部分的操作差异较大,此处以我为准。因为环境光照配置比较复杂并且是严重影响你的游戏体验,因此建议在空闲时多看看 UE5 在这方面的文档:
- Environment Light Mixer;
- 环境光源混合器
在上方工具栏中点击窗口 Window
选择环境光照混合器 Env.Light Mixer
:
如果你在上一步将所有环境光删干净了,那么这里打开的窗口会显示为空;如果你没有删干净那么这里会有些其他项目,你可以根据项目的名称在右侧的大纲中找到相同的内容并删除。
下图中的窗口有以下几个按钮:
- 创建天空光照
Create Sky Light
; - 创建平行光
Create Directional Light
; - 创建天空大气
Create Sky Atmosphere
; - 创建体积云
Create Volumetric Cloud
; - 创建高度雾
Create Heigth Fog
;
2.3 平行光
因为太阳光相对于地球尺度而言是平行光,首先点击环境光照混合器中的创建平行光 Create Directional Light
,点击后会呈现以下效果。之所以只有一部分物体被照亮是因为没有添加大气,我们日常看到的环境之所以是全亮是因为有大气漫反射。
2.4 天空大气
在环境光照混合器中再点击创建天空大气 Create Sky Atmosphere
添加一个大气漫反射:
【Note】:在添加完天空大气后记得 转动一下视角,因为天空的定义是在一定高度外的,由于此时我们还没有添加地面的大气,因此平行光的漫反射也仅限于高空的天空;
2.5 高度雾
在环境光照混合器中点击创建高度雾 Create Heigth Fog
来创造高度雾,创建完高度雾之后环境基本被全照亮了:
2.6 体积云
此时天空什么都没有只有大气,点击环境光照混合器中的创建体积云 Create Volumetric Cloud
为天空添加云:
2.7 天空光照
虽然现在已经将整个环境照亮了,但实际上现在的光照有些锐利了,通过在环境光照混合器中添加天空光照 Create Sky Light
可以让环境中的光柔和一些:
无天空光照 | 有天空光照 |
---|---|
![]() | ![]() |
2.8 统一存放
因为环境光的特殊性,通常会将上面几个环境光对象存放在一个叫 Lighting
的文件夹中,在右侧大纲 Outliner
中新建一个文件夹并将上面创建的几个素材拖进去:
3. 调整环境光
环境光也和第一章的光源一样能够进行调整,调整方式也基本一致。
3.1 调整太阳光
太阳光常用的调整参数有以下几个,都在对象的 Details
中:
- 光源强度
Intensity
; - 源角度
Source Angle
:相当于太阳的大小,手动拖拽的方式最大只能调到5
,但你可以直接修改数字也是会生效的;
3.2 调整太阳角度
调整太阳角度有两种方式,第一种也是最直白的是和调整物体角度一样:
- 在大纲
Outliner
中选中太阳光Directional Light
; - 在上方工具栏中点击旋转图标进入旋转模式,或按键盘
E
键; - 将太阳以对象的形式进行旋转;
另一种方式调整自由度更高,可以同时调整两个方向的角度,有点类似于黄道面的调整:
- 在大纲
Outliner
中选中太阳光Directional Light
; - 按住键盘的
Ctrl
+L
,然后松开L
再去拖动鼠标;
4. HDRI Backdrop 插件
4.1 安装插件
这个插件是一个常用的调整环境光的插件,首先需要安装插件:
- 在上方工具栏的文件
File
中找到插件Plugins
并打开; - 在搜索框中输入
HDRI
会自动搜索这个插件; - 勾选插件前面的框后点击下方立即重启
Restart Now
;
等待重启完成后打开添加对象中的光源 Lights
,菜单中会多出来一个 HDRI Backdrop
选项:
点击后你的画面会变成下面这个样子,向下拖动 Z
轴将背景高度调低:
观察到对象逐渐浮出画面:
4.2 使用其他贴图
可以通过下面的方式修改环境的贴图效果:
- 在右侧大纲
Outliner
中找到HDRIBackdrop
并点击; - 在细节
Details
中找到HDRI Backdrop
并点击缩略图右侧的小文件夹图标; - 在资源浏览器中尝试使用其他环境贴图并观察环境变化;
【Note】:第3步需要将贴图拖到缩略图上,就和之前博客中替换材质球一样;
4.3 摄像机视角
此时你可能会说 “你这背景也太假了”,画面都扭曲了。这是因为我们没有打开相机视角:
- 在右侧大纲
Outliner
中找到HDRIBackdrop
; - 在右下角的细节
Details
中找到高级Advance
并展开; - 勾选使用相机投影
Use Camera Projection
;
4.4 外部 HDRI 资源
在之前的博客 《UE5 学习系列(五)导入贴图资产》 中我们介绍了如何使用资源网站 Poly Haven
,这个网站除了提供对象素材外还提供了很多 HDRI 的资源:
- Poly Haven:https://polyhaven.com/
进入网站向下拉可以看到 HDRIs
的小球,点击旁边的 Browse HDRIs
按钮进去:
根据需要选一个自己喜欢的场景然后点进去,我这里以 Citrus Orchard (Pure Sky) 为例:
- 在右侧选择素材分辨率,这里使用
4k
; - 在右侧选择文件格式,UE需要用
HDR
; - 点击旁边的下载按钮;
【Note 1】:在选择分辨率的时候一定要 量力而行,有些素材可能会会提供非常大的分辨率,但容易一导入 UE 就崩溃。
【Note 2】:这个网站默认打开的是 EXR
格式,一定要选对格式,否则无法导入到 UE 中;
下载好后先在资源浏览器中找到一个合适的位置,这个位置通常是你存放各种贴图的文件夹,我这里是 All
-> Content
-> Texture
,然后直接将素材拖到 UE 中:
如果先要查看这个贴图的信息直接双击点开即可:
将贴图直接拖拽到 Cubemap
中替换环境贴图:
5. 后期盒
5.1 创建后期盒
在上方工具栏中找到创建对象,点开后找到视觉效果 Visual Effects
,点击后期盒 Post Process Volume
:
创建后会多出来一个黄色线条框住的区域,这个区域就是后期盒影响的范围,使用缩放方式将它调大:
在右下角细节 Details
中可以看到这个对象有很多参数可以调整,可以通过这个对象的参数将你的画面调成 电影级画面,在后期非常有用。
5.2 修改后期盒参数
在右侧的细节 Details
中尝试修改这个后期盒的参数,例如曝光 Exposure
中的曝光补偿 Exposure Compensation
:
在后期盒的参数中有一个比较有意思的选项可以体验下:
- 在细节
Details
中的搜索栏中输入Bound
; - 勾选无限范围
Infinite Extent
;
在增大上面提到的曝光补偿后勾选你会发现你的画面变成纯白的了,如果将曝光补偿改回 1
画面又会变回正常。
5.3 眼部自适应
有时候你在调整环境曝光的时候会发现好像确实亮了一下但过了一会儿又暗回去了,这是因为开了眼部自适应,在编辑游戏的时候可能会需要关闭眼部自适应:如果你本身需要进入到一个暗区域但由于开了自适应会自动增大曝光,那么你永远达不到想要的暗场景效果。
在左上方的着色球找到游戏设置 Game Setting
然后取消勾选就可以让环境光按照你想要的曝光量进行调整。
6. Lumen 系统
Lumen 系统是 UE5 相对于其他游戏引擎和 UE4 而言的一个巨大特性,叫做 全局动态光照和反射系统,高质量地解决了全局动态光中包括色彩溢出问题,还支持间接阴影效果与无限漫反射。同时,这个系统的另一个最大亮点是 实时光追渲染,Unity 搞了几年都没整出来。
想要明显看出差别最好制作一个暗环境,这里就基于上面的环境对其进行一些修改即可:
- 在大纲
Outliner
中隐藏光照Lighting
文件夹; - 在大纲
Outliner
中隐藏光照HDRIBackdrop
文件夹;
此时你的环境应该如下图所示:
找个地方创建一个后期盒并将一个点光源移动到这个盒子中:
然后按照下面的步骤关闭 Luman:
- 选中刚才创建的后期盒后在右下角的细节
Details
中找到全局光照Global Illumination
,勾选前面的方法框Method
,然后修改下拉菜单中选择None
,也可以选择其他选项体验下; - 仍然在细节
Details
中找到反射Reflections
,勾选前面的方法框Method
,然后修改下拉菜单中选择None
,也可以选择其他选项体验下;
【Note 1】:原视频中只需要将方法勾选或取消勾选就可以实现全局光照的开启与关闭,但新版的设置中全局光照是默认开启的,必须勾选方法且同时设置为 None
才能关闭;
【Note 2】:因为我们现在用的场景旁边有其他光源,可能开关效果不显著,可以将后期盒的 Bound
选择为无限,这样能看见相对明显的变化;
【Note 3】:因为每个人对光照的敏感程度不一样,你可以在这里尝试修改表面材质、修改光源颜色、修改那一堆乱七八糟的参数,看看会有哪些变化