您需要 登录 才可以下载或查看,没有账号?注册
x
本期内容
虚幻引擎 4 的预计算光照工具 Lightmass 是一个复杂的设置,具有无数的配置选项。通过更好地了解这些选项是什么,您可以节省数天的计算时间,并且仍然可以获得您的关卡应得的惊人照明结果
本文对地图世界设置的“Lightmass”部分中的参数进行了全面细分。我们将通过实际示例深入研究每个参数,并探索每个参数的最佳应用时间和位置
在我们开始之前先做一个简短的免责声明:虽然有许多与光照/Lightmass 相关的提示和技巧可以广泛应用于大多数项目,但我不知道您的具体要求。考虑到这一点,本指南将尽量保持建议的一般性。我希望相反,我可以提供您自己做出决定所需的信息
什么是 Lightmass?Lightmass 是 Unreal Engine 4 的一个集成部分,负责预计算光照。这包括生成光照贴图、叠加到关卡几何体上的纹理,以赋予它们阴影、反射光照和其他自然光照现象的错觉
Lightmass 支持的功能包括全局照明(间接/反射照明)、环境光遮蔽、体积照明和传输(光线穿过半透明物体时颜色/强度的变化)。
这些功能都是“预先计算的”,因为它们是在游戏运行之前通过称为“烘焙”的过程生成的。根据烘焙的质量和规模,此过程可能需要很长时间
所有这些功能也统称为“静态照明”,因为它们在游戏运行时无法更改。这就是为什么在游戏过程中不能移动静态灯光的原因。它们完全被烘焙到场景中,您需要重新烘焙它们才能看到您在世界光照贴图中反映的任何更改。这与可以在运行时更改的“动态照明”不同且不同。Lightmass 不处理动态光照,所以这是另一个讨论。
塔场景
要探索每个光照设置在场景中的作用,我们首先需要场景。我为本教程制作的一个小塔里面环境。它包括一些非常适合试验间接照明的有趣形状,以及引擎启动内容中的一些更复杂的资产,我们可以使用它们来推动阴影的细节
我们将依次试验每个光照设置,看看它如何影响场景。在我们开始之前为了保持一致性,本文中介绍的每个烘焙,除非另有说明,都将在细节照明视图模式下查看,并以生产质量烘焙
静态光照等级比例
列表中的第一个设置,也是最重要的设置之一。静态光照级别比例告诉 Lightmass 它将在场景中评估阴影细节的样本大小。值越小,详细程度越高
您可以使用此设置来增加阴影的复杂性,尽管这种更高级别的细节通常是以更多视觉噪点为代价的。这可以通过增加间接照明平滑度值来补偿,我们稍后会谈到
静态照明级别比例将对您的预计算照明的整体准确性产生很大影响。由于光照贴图的大小没有额外成本,在运行时它实际上是免费的——但它肯定会延长你的烘焙时间
静态光照等级比例
Indirect Lighting Quality
| 烘焙时间
Bake duration
| 因素
Factor
| 1.0(默认)
| 3:02分钟
| 1
| 2.0
| 2:25分钟 | 0.80
| 0.5
| 4:37分钟 | 1.52
| 0.2
| 8:06分钟 | 2.67
| 0.1
| 17:09分钟 | 6 |
对于最终烘焙,通常建议使用 0.1 的照明静态照明级别比例,尤其是对于建筑可视化项目。在此设置的工具提示中,Epic 还建议将此值提高到 2 或 4,以用于不需要高细节的较大环境(如风景) Epic Jerome Platteaux的艺术总监在他的大师班“使用虚幻引擎照明”(观看!)中建议使用以下公式来计算这些值以获得最佳效果 静态照明级别比例*间接照明质量= 1
静态光照等级比例
Static Lighting Level Scale
| 间接照明质量
Indirect Lighting Quality
| 1.0
| 1
| 0.5
| 2
| 0.2
| 5
| 0.1
| 10
|
间接照明平滑度此设置将通过平滑间接阴影来降低其细节级别。值越高,平滑程度越高。在较高的值下,您将开始看到阴影细节的损失和光渗色
间接光照平滑度可用于控制光照贴图中的噪点水平,但这将以降低阴影定义为代价。
环境颜色Environment Color参数是一种线性颜色,您可以使用它全局着色静态照明。这是在不编辑单个灯光的情况下调整色温或情绪的一种方法,虽然它对烘焙时间的影响很小,但它确实有很大的缺点
它的工作方式很简单。Lightmass 获取它在烘焙结束时生成的光照信息,并将这个值(乘以您的环境强度)从上半球向下投影到结果上。由于它是附加的,这意味着如果您的关卡中已经有着色灯光,将会有一些颜色混合。在上面的示例中,红色环境颜色与天光的蓝色混合,因此结果为紫色
有趣的是,Environment Color值有一个 alpha 通道,但它似乎没有做任何事情
默认情况下,环境颜色设置为0,0,0,这实际上与禁用此功能相同。这是因为 Epic 不鼓励使用它,这是有充分理由的。由于这种环境光照是在过程的最后计算的,所以在确定反射光照时没有考虑环境颜色,这使得它在物理上不准确。此外,它会影响反射捕捉演员的强度,这意味着它们不再准确地反映场景
如果您想在场景中全局添加环境光,强烈建议(Epic和我自己)不要管此设置,而是使用Sky Light
官方文档:SkyLight
https://docs.unrealengine.com/5.0/en-US/sky-lights-in-unreal-engine/
注:我注意到 Unreal Answers 上的许多人试图在运行时更改此设置以创建动态光照变化。这是不可能的。我建议研究固定的天灯
环境强度如果您使用的是Environment Color,那么您将能够使用Environment Intensity参数来缩放它对您的关卡的影响。添加的灯光强度将乘以此设置,因此值为0将禁用此环境照明方法,而值为2将使其效果加倍
与上面的环境颜色一样,此设置对烘焙时间的影响可以忽略不计。默认情况下,它设置为1,尽管这不会做任何事情,除非您也将环境颜色从默认的黑色更改。同样,如果此设置设置为0,环境颜色参数将显示为灰色 漫反射增强
对象的漫反射值(也称为“Albedo”或“Base Color”)是在任何其他信息(如静态照明或材质效果)叠加之前的颜色。您可以通过在视口中切换到“未点亮”视图模式来查看关卡中对象的漫反射值
漫反射颜色由对象的材质定义,其值将影响从其表面反射的光的颜色和强度。例如,漫反射值为0.1的表面将比漫反射值为0.9的表面吸收更多的光,从而使整体环境更暗
Diffuse Boost参数将全局缩放您的材质漫反射值对静态照明的贡献程度。默认情况下,它设置为1
应该提到的是,每种材质(和材质实例)都有自己的漫反射增强值。这不会覆盖 Lightmass 中的设置,而是乘以它。这意味着,例如如果您的材质的漫反射增强为2,并且您的 Lightmass Diffuse Boost设置也是 2,那么在计算间接照明时,该对象将贡献 4 倍
体积光照方法用于将间接照明应用于动态对象的数据集称为“体积照明”。Lightmass 将在世界上可配置的位置范围内对静态照明进行采样,并使用该数据创建可在运行时引用的体积。当一个对象在关卡中移动时,Unreal 将在这些样本之间进行混合,以创建场景中间接照明的近似值
虚幻引擎提供了两种不同的体积光照方法,每种方法都有自己独特的设置选项,下面会详细介绍
体积光照贴图官方文档:
https://docs.unrealengine.com/5.0/en-US/volumetric-lightmaps-in-unreal-engine/
Epic 推荐的默认设置和较新的方法(从 4.25 版开始)。体积光照贴图方法使用三阶球面谐波样本来捕获来自各个方向的光
您可以从视口中的“显示”菜单查看体积光照贴图烘焙的结果,然后单击“可视化” > “体积光照贴图
稀疏体积光照样本(也称为间接光照缓存)官方文档:
https://docs.unrealengine.com/5.0/en-US/indirect-lighting-cache-in-unreal-engine/
一种较旧的生成体积光照的方法,稀疏体积光照样本将为它在关卡中获取的每个样本捕获一个颜色值
您可以通过在同一Visualize子菜单中选择Volume Lightmap Samples选项来查看这些值。如果您选择了适当的方法烘焙了您的照明,您将只能看到其中任何一个
两种体积光照方法都依赖于用户放置的Lightmass Importance Volume来引导引擎确定您希望在其中采集样本的空间
为了更深入地了解 Lightmass 的这一部分,我强烈建议您探索上述两个链接。Epic在为我们分解它方面做得非常出色
使用环境光遮蔽环境光遮蔽是一种用于定义物体间接阴影的照明技术,Unreal 提供了几种不同的实现。如果选中此设置,Lightmass 会将环境光遮蔽信息烘焙到表面光照贴图中。它对烘烤时间的影响很小
默认情况下未选中并禁用使用环境光遮蔽
生成环境光遮挡材质遮罩启用后,此功能可通过“PrecomputedAOMask”材质节点访问由 Lightmass 在材质编辑器中生成的环境光遮蔽数据。这对于将不同的表面混合在一起特别有用,但可以用于一系列不同的目的
此设置不会影响烘焙的持续时间,因为 Lightmass 在启用使用环境光遮蔽时会生成此数据 可视化材质漫反射这是一个调试设置,可让您可视化关卡的漫反射对静态照明的贡献。如果您得到奇怪的光照结果,Visualize Material Diffuse可以快速查看场景中的哪些演员正在影响光照质量
Visualize Material Diffuse将覆盖关卡中的灯光和下面详述的Visualize Ambient Occlusion设置
可视化环境光遮挡Visualize Ambient Occlusion是另一个调试设置。启用它将覆盖场景中的灯光并仅显示环境光遮挡组件。与Visualize Material Diffuse一样,此设置对于解决问题和微调其他值很有用
您需要将Use Ambient Occlusion设置为 true 才能使此设置生效
压缩光照贴图对于大多数使用静态光照的项目,很可能有相当多的纹理流式处理池将被光照贴图纹理占用。为了帮助减轻这种负载,默认情况下,虚幻引擎会压缩它们以节省运行时内存和磁盘空间
不幸的是,开箱即用,我们无法控制压缩发生的时间和方式,但我们可以通过将Compress Lightmaps设置为 false 来完全关闭它
重要的是要注意,虽然禁用压缩对光照保真度的影响可能很微妙,但它对光照贴图大小的影响将是显着的
您的地图将具有更少的伪影和噪点(最明显的是在较大的平坦表面上,如墙壁和地板),但同时您的纹理大小将增加大约四倍。由您决定这样的成本是否值得结果
注:在项目设置的渲染选项卡中切换到Crunch 压缩时,我看到了很好的结果。它看起来像是默认光照贴图压缩的一个有希望的替代方案,但我还没有充分探索它,因此还没有形成强烈的意见
作者:[tr]Nick Mower 专栏地址: https://www.techarthub.com/lighting-companion-lightmass-world-settings-in-ue4/
好!本期分享就到这里,我们下期见!接下来我们会连续分享【灯光、构图相关内容】
|