Lightmass(全局光照) 创建具有复杂光交互作用的光照图,例如区域阴影和漫反射。它用于预计算 static(静态) 和 stationary(静止) 光源的照明贡献部分。
编辑器和全局光照之间的通信由 Swarm Agent 处理,它管理本地的照明构建,也可以将照明构建分发到远程机器。默认情况下以最小化方式打开的 Swarm Agent 还会跟踪照明构建进度,并让您了解哪些机器为您工作,它们在做什么,以及每个机器使用了多少线程。
下图是Swarm Agent的一个示例图像(靠近底部的条形图显示了构建的完成程度)。
Diffuse Interreflection(漫反射) 是目前为止视觉上最重要的全局照明效果。在默认情况下,光源以全局光照反射,而材质的 BaseColor(基本颜色) 项控制有多少光(和什么颜色)向各个方向反射。这种效果有时被称为渗色。漫反射是入射光在各个方向上均匀反射,即不受观测方向或位置的影响。
这里是一个由全局光照创建的场景,只有一个方向的光,且仅显示直接照明。光源无法直接照射的区域是黑色的。这是没有全局照明的结果。
这是第一个漫反射全局照明反射的样子。注意左边椅子后面的阴影,这叫做间接阴影,因为它是间接光的阴影。漫反射的亮度和颜色取决于入射光和与之相互作用的材质的漫反射项。每次反射都比前一次更暗,因为一些光被表面吸收而不是被反射。柱子底座比其他表面得到更多的间接光,因为它们更接近直射光下的区域。
这是第二次漫反射。光线变得更弱,分布更均匀。
这是四种漫反射相结合的场景。比起手动放置补光灯,模拟全局照明可以创建更细致和现实的照明。尤其是补光灯无法实现间接阴影。
反射光照获取基础材质的漫反射颜色,如下所示。这就是渗色这个术语的由来。渗色最明显的是高度饱和的颜色。可以通过在 Primitive(基元)、Material(材质) 或 Level(关卡) 上提升 DiffuseBoost 来夸大效果。
全局光照在 Lightmass Importance Volume(全局光照重要性体积) 内以较低的分辨率将样本放置在一个统一的三维网格体中,并以较高的分辨率将样本放置在角色可能行走的向上表面上。每个照明示例捕获来自各个方向的间接光照,但不包括直接光照。
第一幅图像是放置在地板上方的照明样本调试可视化,第二幅图像是光照模式下的相同场景。请注意红色挂毯上面的样本如何获取红色反射光。这些样本被可视化为单一颜色,但它们确实捕获了来自各个方向的光线。
然后,间接照明缓存使用这些照明样本为可移动对象插入间接照明。间接照明影响光源环境阴影的颜色,而不是方向。使用 Show(显示)-> Visualize(可视化)-> Volume Lighting Samples(体积照明样本) 在视口中预览它们。
全局光照会自动计算出详细的间接阴影,但是为了艺术目的夸大间接阴影或者增强场景的接近感是很有用的。
Ambient occlusion(环境遮挡) 是从一个均匀明亮的上半球得到的间接阴影,就像阴天。全局光照支持计算环境遮挡,将其应用于直接和间接照明,然后将其烘焙成光照图。默认情况下,环境遮挡是启用的,可以通过取消选中 World Settings(世界场景设置) 下的 Lightmass(全局光照) 的 Lightmass Settings(全局光照设置) 中的 Use Ambient Occlusion(使用环境遮挡) 复选框来禁用。
第一幅图是一个有间接照明但没有环境遮挡的场景。第二幅图是有环境遮挡的相同场景,且环境遮挡应用于直接和间接照明,注意对象聚集的地方变暗。
无环境遮挡 | 有环境遮挡 |
---|---|
属性 | 说明 |
---|---|
Visualize Ambient Occlusion(可视化环境遮挡) | 在构建照明时,仅使用遮挡因子覆盖光照图。这有助于准确地了解遮挡因子是什么,并比较不同设置的效果。 |
Max Occlusion Distance(最大遮挡距离) | 一个对象对另一个对象造成遮挡的最大距离。 |
Fully Occluded Samples Fraction(完全遮挡样本比例) | 为了达到完全遮挡,必须遮挡的样本的比例。请注意,还有一个逐基元FullyOccludedSamplesFraction,它允许控制一个对象对其他对象造成的遮挡量。 |
Occlusion Exponent(遮挡指数) | 指数越高,对比度越高。 |
当间接照明反射次数大于0时,在照明构建时间范围内,环境遮挡几乎是没有的。
全局光照在计算阴影时考虑了BLEND_Masked材质的不透明度遮罩。在编辑器视口中被剪切的部分材质也不会引起任何投影,这允许从树和叶子进行更详细的投影。
当启用 stationary(静止) 的 Sky Light(天空光照) 时,全局光照以环境法线的形式产生定向遮挡。
全局光照计算 stationary(静止) 光源的距离场阴影贴图。距离场阴影贴图即使在较低的分辨率下也能很好地保持其曲线形状;然而,它们不支持区域阴影或半透明阴影。
采用全局光照时,所有 static(静态) 光源在默认情况下都是区域光源。 Point Light(点光源) 和 Spot Light(聚光源) 使用的形状是一个球体,其半径是由 Lightmass Settings(全局光照设置) 下的 Light Source Radius(光源半径) 设置的。Directional Light(定向光源) 使用一个圆盘,位于场景的边缘。光源的大小是控制阴影柔度的两个因素之一,因为较大的光源会产生较柔和的阴影。另一个因素是从接收位置到阴影投射物的距离。随着距离的增加,阴影变得柔和,就像在现实生活中一样。
第一幅图像是一个静态定向光源,只有静态照明,半影大小在任何地方都是相同的。在第二幅图像中,全局光照计算的区域阴影的清晰度由光源大小和遮挡物距离控制。注意柱子阴影在接近地面的地方如何变得更加清晰。
Point Light(点光源) 和 Spot Light(聚光源) 的半径用黄色线框表示,影响半径用蓝绿色线框表示。在大多数情况下,需要确保光源不与任何投射阴影的几何体相交,否则光线将在该几何体的两侧发出。
光在通过应用到静态阴影投射网格体的半透明材质之后,将失去一些能量,导致半透明的阴影。
穿过材质的光称为透射光,每个颜色通道的透射光量在0到1之间。值为0表示完全不透明,1意味着入射光可以不受影响的穿过。由于透射光没有材质输入,所以目前是由以下其他材质输入得出的:
这意味着在不透明度为0时,该材质不会过滤掉入射光,也不会有半透明的阴影。在不透明度为1时,入射光将被材质的自发光或基本颜色(取决于是否被点亮)过滤。请注意,间接照明有时会洗掉半透明的阴影,使它们比半透明材料的自发光或漫反射更不饱和。
有几个因素控制半透明阴影清晰度。
使用大光源(光源角度为5的定向光源) | 使用小光源(光源角度为0) |
---|---|
使用了一个小光源,但是光照图的分辨率太低,无法捕捉到清晰的半透明阴影 | 质导出的分辨率过低(由材质编辑器中的导出分辨率比例(Export Resolution Scale)控制),无法捕捉到清晰的阴影 |
---|---|
间接光源也受到半透明材质的影响。该图像中的窗口根据光线的透射情况对入射光进行过滤,然后光线会在场景中来回反射,且颜色会发生变化。
渲染期间,光照像素颜色被确定为 BaseColor * Lighting(基本颜色 * 照明),所以基本颜色直接影响光照的可见度。高对比度或暗漫反射纹理使光照很难被注意到,而低对比度中距离漫反射纹理让光照的细节表现出来。
比较第一幅图像中使用中等漫反射纹理构建的场景和第二幅图像中同样使用全局光照但带有噪点的黑色漫反射纹理构建的场景照明清晰度。第二幅图像中,只有最频繁的变化才会在场景中被注意到,比如阴影过渡。
使用中等漫反射纹理构建的场景 | 带有噪点的黑色漫反射纹理构建的场景 |
---|---|
Unlit(无光照) 视图模式可用于查看漫反射项。第一幅图像中的场景在无光照视图模式下看起来更加平坦和单调,这意味着所有的工作都是由光照完成的,最终像素颜色的变化主要是由于光照的不同。(为了获得良好的照明,在无光照视图模式下,场景看起来单调乏味。)将照明和宏观特征烘焙到漫反射纹理中将抵消照明。
使用高分辨率的纹理光照图是获得清晰、高质量照明的最好方法。使用高光照图分辨率的缺点是占用更多纹理内存和增加构建时间,所以需要做一个权衡。理想情况下,场景中的大部分光照图分辨率应该分配在高视觉影响区域和有高频阴影的地方。
Lightmass Solver(全局光照解算器) 设置是根据 Lighting Build Options(照明构建选项) 对话框中请求的构建质量自动设置的。生产应该提供足够好的质量,即在应用漫反射纹理时,穿帮不是很明显。
许多贴图在编辑器中已经网格化到网格的边缘,但是需要高质量照明的实际可玩区域要小得多。全局光照取决于关卡的大小发射光子,因此这些背景网格体将大大增加需要发射的光子数量,而照明构建时间也将增加。全局光照重要性体积控制全局光照发射光子的区域,允许将其集中在需要清晰间接照明的区域。在重要性体积之外的区域在较低的质量下只能得到一次间接照明的反射。
第一幅图像中显示了多玩家地图的系统占用线框视图。需要高质量照明的实际可玩区域是中心的绿色小团。
第二幅图像中显示了多玩家地图可玩区域的近景,并正确选择了设置 Lightmass Importance Volume(全局光照重要性体积)。全局光照重要性体积将该区域的半径从80,000单位减少到10,000单位,照明面积小了64x倍。
要将一个 Lightmass Importance Volume(全局光照重要性体积) 添加到某个关卡中,可以从 Modes(模式) 菜单的 Volume(体积) 选项卡中将这个 Lightmass Importance Volume(全局光照重要性体积) 对象拖动到关卡中,然后将其缩放到所需的大小。
还可以通过单击 Actor 下的 Details(细节) 面板中的 Convert Actor(转换Actor) 下拉框,将画笔转换为全局光照重要性体积。
单击该下拉框后,将出现一个菜单,可以在其中选择要替换画笔的Actor类型。
如果放置多个全局光照重要性体积,那么大多数照明工作将通过包含所有这些体积的边界框来完成。但是,体积照明样本仅放置在较小的体块中。
可在 Lightmass(全局光照) 部分下的 World Settings(世界场景设置) 窗口中调整全局光照设置。
可从 Toolbar(工具栏) 单击图标以访问 World Settings(世界场景设置)。
属性 | 说明 |
---|---|
Force No Precomputed Lighting(强制不使用预计算照明) | 这将使全局光照无法生成光源和阴影贴图,强制关卡仅使用动态照明。 |
Static Lighting Level Scale(静态光源等级缩放) | 关卡的比例相对于引擎的比例,1虚幻单位 == 1cm。这可用于确定在照明中计算多少细节,较小的比例将大大增加构建时间。对于巨型关卡,可以使用2或4左右的较大比例来减少构建时间。 |
Num Indirect Lighting Bounces(间接照明反射次数) | 允许光从光源反射到物体表面的次数。0为仅直接光照,1为一次反射,以此类推。反射1次计算时间最长,其次是反射2次。连续的反射几乎是不受约束的,但也不会增加太多的光,因为光在每次反射后都会衰减。 |
Indirect Lighting Quality(间接照明质量) | 缩放全局光照GI解算器使用的样本计数。设置越高,会导致构建时间大量增加,但解算器穿帮(噪点、斑点)变少。请注意,这不会影响由于使用光照图(纹理接缝、压缩假影、纹索形状)而产生的穿帮。 |
Indirect Lighting Smoothness(间接照明平滑度) | 数值越高,间接照明越平滑,可以隐藏解算器噪点,但也会丢失清晰的间接阴影和环境遮挡。在增大 Indirect Lighting Quality(间接照明质量) 以获取最高质量时,把这个值降低一些是有用的(0.66或0.75)。 |
Environment Color(环境颜色) | 错过这个场景的光线会被染上的颜色。环境可以可视化为一个围绕着关卡的球体,向各个方向发射这种颜色的光。 |
Environment Intensity(环境强度) | 缩放环境颜色以允许HDR环境颜色。 |
Diffuse Boost(漫射增强) | 缩放场景中所有材质的漫反射效果。增加 DiffuseBoost(漫射增强) 是增加场景中间接照明强度的有效方法。在应用 DiffuseBoost(漫射增强) 之后,漫反射项的亮度被限制为1.0,以保持材质的能量守恒(这意味着光在每次反射时必须减少,而不是增加)。如果提高 DiffuseBoost(漫射增强) 未导致更明亮的间接照明,漫射项正被限制,光的IndirectLightingScale应该用于增加间接照明。 |
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项覆盖法线直接和间接照明。这在调整环境遮挡设置时很有用,因为它隔离了遮挡项。 |
Level Lighting Quality(关卡照明质量) | 这反映了当前关卡的照明构建质量设置。 |
下面是可以在 Lightmass(全局光照) 部分的光源属性中进行调整的 Lightmass(全局光照) 设置。
属性 | 说明 |
---|---|
Indirect Lighting Saturation(间接照明饱和度) | 0将导致间接照明完全不饱和,1将保持不变。 |
Shadow Exponent(阴影指数) | 控制阴影半影的衰减,或区域从完全光照到完全阴影的变化速度。 |
Light Source Angle(光源角度) | 对于 Directional Lights Only(仅定向光源),确定光的自发光面相对于接收器的延伸角度,影响半影大小。 |
下面是可以在从 Modes(模式) 菜单的 Geometry(几何体) 选项卡中添加的 Brush(画笔) 上进行调整的 **Lightmass(全局光照)**设置。这些选项可以在 Brush(画笔) 的 Details(细节) 面板下找到。
属性 | 说明 |
---|---|
Diffuse Boost(漫射增强) | 缩放应用到此对象的所有材质的漫反射效果。 |
Fully Occluded Samples Fraction(完全遮挡样本比例) | 为了实现对其他对象的完全遮挡,从此对象中采集的AO样本必须被遮挡的比例。这允许控制一个对象对其他对象造成多少遮挡。 |
Shadow Indirect Only(仅间接阴影) | 如果选中此项,则此对象只会对间接照明产生阴影。这对于草非常有用,因为渲染的几何体只是实际几何体的表示,并不一定会投射出精确形状的阴影。它对草也很有用,因为产生阴影的频率太高,无法存储在预计算的光照图中。 |
Use Two Sided Lighting(使用双面照明) | 如果选中此项,该对象将被照亮,就好像它接受来自其多边形两侧的光照。 |
下面是可以在 Details(细节) 面板下的 Base Node(基本节点) 的 Material(材质) 中进行调整的 Lightmass(全局光照) 设置。
属性 | 说明 |
---|---|
Cast Shadow as Masked(像在遮罩状态一样下投射阴影) | 对于半透明材质,将该材质视为已被遮罩的材质,以用于阴影投射。 |
Diffuse Boost(漫射增强) | 缩放此材质对静态照明的漫反射效果。 |
Export Resolution Scale(导出分辨率缩放) | 缩放导出此材质属性时的分辨率。当需要细节时,这对于提高材质分辨率非常有用。 |