UE5-课程学习-LightingEssentialConceptsandEffects
序
本博客时对Lighting Essential Concepts and Effects
(照明基本概念和效果)的学习记录.
课程链接: Epic官网
项目文件在课程链接中有提供.
Lighting Basics
4 types of light actors(在加一个自发光)
4 types:
Directional Light
: 模拟的是从无穷远处射过来的平行光. 适合模拟太阳过.
Point Light \ Spot Light
: 点光源 和 锥形光源(聚光源)
Sky Light
: 捕获关卡的远处部分并将其作为光源应用于场景. (我理解是用来做GI或者间接光照)
Rect Light
: 实际上是还有一个矩形光源
通用设置:
这里很多设置都可以直接理解字面意思
简单说说: Intensity Units(光源的单位)可参考这篇官方文档
对于Sky Light
这里如果勾上了的话: 可以理解为不模拟光的多次bounce
, 不勾的话就是模拟多次bounce
移动性:
Static / Stationary / Movable
: 这个按照我对渲染的理解, 这部分Static
的光照可以用Precompute
的方法来解决, 而Movable
则要Realtime
.stationary
就是相当于混合态吧. 先这么理解.
光的GameSetting
这里关了就是自己设置曝光参数的意思, 不使用GameSetting
. EV100 = ISO100(相机的曝光三要素中的ISO)
Baked Lighting end Lightmass 1
Bake Lighting
的过程就是点击build(build light only)
的过程
通过procomputed Static Light
可以在真正运行的时候获得更好的实时性
Bake
过程中, 出现刚开始和结尾非常慢是正常的(和CPU以及GPU的并行性有关(感觉))
Bake
更新光源的位置后, 都需要重新Bake
, 下图可看到, 由于重新移动光源后出现了两个阴影(一个是实时渲染的, 一个是之前bake
的)
Lightmass
:UE
翻译为全局光照
Baked lighting quality and Setting
: Baked light质量有以下两方面控制:
另外一个是在world Setting
中:
这里面参数很多, 对与入门课来说需要理解前四个: 分别为静态光源与天光的质量以及bounces
次数
Lightmass Importance Volume
: 字面理解就是这个地方是着重要计算的地方, 不用计算无穷远处的环境.Lightmass Portal
: 这个可以理解为就是在通过采样渲染方程计算积分的时候, 着重从这个区域采样的意思. 就是让环境光多多通过这个portal
进行bounces
Baked Lighting end Lightmass 2
理论部分:
Lightmap
是对应Baked & static
的预计算的全局光照.(Precomputed GI
)
这里粘贴GAMES104
的一张图.
实际操作:
如果缺失lightmap
的uv
图,
可以在这里对应mesh
中设置:
这节课我没有对于的3D软件,
对UE生成的Lightmap
直接烘焙直接会出错. 这里就不放图了.
本节课最后简单介绍了Volumetric Lightmap
Dynamic Lighting-indoor and basics
这一节基本上没有什么实操图,
更多的是关于Static/Moveable/Stationary
的进一步的解释.
Moveable
: 实际上就是用的简单的处理方式, 会产生非常锐利的硬阴影. 可以对应上two Pass
生成的shadow map
.实际上并没有这么简单, 但都是没有预计算的方式实现的.
Static
: 也比较简单, 可以理解为完全的precompute
, 完全不用考虑移动性.
Stationary
: 重要&关键
- 首先, 先说限制:
- Stationary
的光源最多不能超过四个(在一个进的区域内),
如果多了会爆红.(视频里解释的是Shadow map
只有四个通道)
- 解决方法:
将其中的一个stationary
光源设置中:Cast Shadow
设为false
-
- 接下来说本视频讲的解释:
- 实际上, 计算
Shadow map
在RTR中是一个非常令人头疼的问题. 相当吃资源. 而
Stationary
是hybird the static and movable
的, 其中间用了好几种不同的shader
方法来解决dynamic shadow
的问题.(Very very heavy and heaviest)
Dynamic Lighting - Outdoor
CSM
通俗的说,
Cascade Shadow Map
是对Shadow Map
的拓展,
以应对不同的观察距离,
为不同的观察距离设置不同分辨率的Shadow Map
.
其设置位于:
- Dynamic Shadow Distance Moveable/(stationary)
:
你能看到shadow
的距离.
并且影响你的Cascade Shadow Map
的分布.
- 如下图:
-
- 关于影响分布: 这个值调的越低, 最高清的shadow Map
就越近.
也就是说会造成在同一个地方, 值从0调到最大,
阴影先模糊(不是第一层)->清晰(切换到第一层)->模糊(第一层变模糊了)
- Num ...
: 就是层数
Distance Field
Distance Field
首先需要在Project Setting
中打开:
可以在Show
中进行可视化:
设置CSM
设置下面,
通常是结合CSM
一起使用:
怎么说呢, 我感觉距离场就是为了加速计算的.(个人理解)(对距离场理解的不够)
DFAO
Distance Field Ambient Occlusion
: 可以参考官方文档
这篇文章结尾有段话挺有意思的:
> 简易反射光照
> 在天空光照上取消勾选Lower Hemisphere is Solid Color
,
并在立方体贴图上绘制底色,可获得与太阳反射光照相似的效果,不会产生额外开销。
>
这将使灯光泄露到室内,因其并不遵循定向光源的投影,在室外场景中较为有效。
需要添加Sky Light
并设置为Movable
环境光遮蔽我只学过SSAO
,
这部分目前依然是知道具体设置在哪就行.
Sky Light
设置界面:
Combining Static and Dynamic Lighting
Stationary VS Static:
右为static
:
下为static
:
这里我自己对比了一下, 两者有区别但是我也并不知道那边好.
(视频中说设置为Stationary
的原因我是有些疑惑的).
所以这里只简单说下这节课中的一些其他教程:
关于
Lightmap
的分辨率
应该尽量让整个环境uniform
, 过大会导致一些性能上的问题.
可以在选项中查看lightmap
的分辨率
二是关于
AO
的问题, 在world setting
中有一个设置可以控制其是否打开.(Use AO)
在游戏行业中, 红色框这个功能是不能打开的, 它会造成非常大的性能开销.(Compress Lightmaps)
Lighting Effects
Source Radius and Size
对于点光源可以设置source
光源的长度和直径.
IES
IES
可以用来设置光源的分布, 对于聚光灯有其管用.
Light Functions
Light Functions
是Material
中的一种,
继承Material
即可.
在Material
设置中,
选择Material Domain
为LightFunciton
,
此时材质中只有一个Emissive Color
项
可以在对应的光源处使用.
利用Light Functions
可以实现很多和光线有关的小动画.
视频中举例: 比如篝火/ 流动的云等等.
这里作为案例实现了水中的波纹.
这里前面的两个材质相乘是为了混合两种材质.
后面的power
项时控制对比度.
而后面的Multiple
视频里说是控制亮度.
Lighting Essentials Reflections
Screen Space Reflections(SSR)
学的时候知道SSR有很多缺点, 但是在视频中的这个场景中真的很明显.
沙发这里很明显被折断了.
Reflection Captures
由于SSR
的问题,
一般时结合Reflection Capture
来使用.(在不同的距离时会发生切换)
使用后的效果也很明显.
在Project Setting
中可以设置反射的分辨率:
但是Reflection Captures
的缺点:
1. 它不是实时的, 它是类似算出来的, 不会实时更新,
也就是说你空间中有个人出现, 它不一定会更新. 2.
不太现实.(如果捕获球移动了整个反射画面也会移动,
这是不符合实际情况的)
Planar Reflection
Planar Reflection
使用时需要开启:
其通常使用在捕获平面的反射, 比如说镜子, 水面等等.
可以实时也可以不是
A quick look at Capture to 2D/Cube
用于生成Render
纹理.
需要选择对于的Texture Target
可以直接贴到物体上. 视频也没有细讲. 现在我也不知道要怎么使用.
Reflection的布置
除了需要布置反射的位置, 添加了反射捕获球之外, 在空间中的一些其他地方也布置了一些(just a fallback General one to cover the majority of the area near very bright or near very reflective surfaces)
Fog and Volumetric Light
这一部分感觉UE5有些改动.
所以只记录Directioal Light
的三个设置:
这个设置和大气配合
这两个也是用来设置雾被物体遮挡,光穿过的那种感觉.