版权声明:本文为CSDN博主「Papals」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
Lightmass
全局光照(Lightmass) 创建具有复杂光交互作用的光照图,例如 区域阴影 和 漫反射 。它用于 预计算 具有 固定(Stationary
)和 静止运动性(Static
)的光源的照明贡献部分。
更多有关 Lightmass 的基础知识,请参看 Lightmass 概要介绍
编辑器和全局光照之间的通信由 Swarm Agent 处理,它管理 本地 的照明构建,也可以将照明构建分发到 远程机器 。默认情况下以最小化方式打开的 Swarm Agent 还会跟踪照明构建进度,并让你了解哪些机器为你工作,它们在做什么,以及每个机器使用了多少线程。
下图是 Swarm Agent 的一个示例图像(靠近底部的条形图显示了构建的完成程度)。
Lightmap 为 HDR 存有灯光方向信息。UE4 使用 Lightmass 对光照进行 预计算,以节省动态光照计算的成本 。Stationary light build 完灯光后还有 Shadow map ,如果有 Stationary 天光 会有 Sky occlusion map(Bent normal信息)。材质、物体、灯光、后期都可以控制 Lightmass 。
Static Lighting Level Scale(静态光源等级缩放)
这可用于确定在照明中计算多少细节,较小的比例将大大增加构建时间和细节。
增加细节的效果如下图所示
Indirect Lighting Quality(间接照明质量)
设置越高,会导致构建时间大量增加,但解算器穿帮(噪点、斑点)变少。
减少噪点的效果如下图所示
在经验上,我们为了构建时间和最后质量做权衡,我们让它们有一个固定的关系
Num Indirect/Sky Lighting Bounces
影响场景中的亮度
此参数控制光线在区域内的反射次数,反射次数越多,区域光线更强。
Indirect Lighting Smoothness(间接照明平滑度):
影响场景中的照明平滑度
Evironment color/Environment intensity
Diffuse Boost(漫反射增强):
加 Diffuse Boost
的值是增加场景中 间接光照亮度 的 有效 方式
Use Ambient Occlusion(使用环境遮挡):
使静态环境遮挡可以通过全局光照计算并内置到您的光照图中。
Direct Illumination Occlusion Fraction(直接照明遮挡率):
多少 AO 应用于直接照明
Indirect Illumination Occlusion Fraction(间接照明遮挡率):
多少 AO 应用于间接照明
Occlusion Exponent(遮挡指数):
指数越高,对比度越高
Fully Occluded Samples Fraction(完全遮挡样本比例):
为了达到完全遮挡,必须遮挡的样本的比例。
Max Occlusion Distance(最大遮挡距离):
一个对象对另一个对象造成遮挡的最大距离。
Visualize Material Diffuse(可视化材质漫反射):
仅用导出到全局光照的材质漫反射覆盖法线直接和间接照明。这在验证导出的材质漫反射与实际漫反射匹配时 非常有用。
Visualize Ambient Occlusion(可视化环境遮挡):
仅用 AO 项覆盖法线直接和间接照明。这在调整环境遮挡设置时很有用,因为它隔离了遮挡项。
Compress Lightmaps(压缩):
是否压缩 Lightmap
光源设置灯光
Indirect Lighting Saturation(间接照明饱和度)
Shadow Exponent(阴影指数)
控制阴影半影的衰减,或区域从完全光照到完全阴影的变化速度
基本材质设置
材质的细节(Details) 面板下的基本节点(Base Node)的材质(Material)中进行调整的全局光照(Lightmass
)设置。
- Cast Shadow as Masked,
- Diffuse Boost
- Export Resolution Scale
Lightmass portal
Lightmass portal 提高 Lightmap 的品质。
这个参数可以更好的帮助 Lightmass 计算光来自何处,例如,通过它找到天光的进入窗口,并以高质量的方式解析进入的光线。
UE4 Light Scenarios
Light Scenarios 提供静态光变化的可能性
光照贴图需要注意以下问题
- 不要有重叠的部分
- 不要超过
0~1
的 UV 空间 Flag-Mapping
并不是最好的方式且经常导致光照贴图错误- 尽量占满 UV 空间
- 如果模型很大而且复杂,最后分成数个物体,这样也能有助于裁剪等机制
- 尽量减小光照贴图分辨率以减少贴图尺寸
- 相互不接触的线之间要保持至少 2 像素的距离,以防止光照污染
展 UV 的时候注意
Min Lightmap Resolution
, 定义了 UV 块之间的距离。这个值要小于等于Lightmap Resolution
,否则会出现 Lightmap 像素无法匹配而溢出的问题。
实际调参例子
LightmassImportanceVolume
LightmassImportanceVolume
给场景添加一个 Light 渲染的区域,告诉引擎 哪里需要渲染灯光。