Language:
Page Info
Engine Version:
Share

全局光照全局照明

lighting_overview_banner_001.png

全局光照(Lightmass) 创建具有复杂光交互作用的光照图,例如区域阴影和漫反射。它用于预计算具有固定和静止运动性的光源的照明贡献部分。

编辑器和全局光照之间的通信由 Swarm Agent 处理,它管理本地的照明构建,也可以将照明构建分发到远程机器。默认情况下以最小化方式打开的Swarm Agent还会跟踪照明构建进度,并让您了解哪些机器为您工作,它们在做什么,以及每个机器使用了多少线程。

下图是Swarm Agent的一个示例图像(靠近底部的条形图显示了构建的完成程度)。

SwarmAgent.png

静态和固定灯源的特性

漫反射

漫反射(Diffuse Interreflection) 是目前为止视觉上最重要的全局照明效果。在默认情况下,光源以全局光照反射,而材质的基本颜色(BaseColor)项控制有多少光(和什么颜色)向各个方向反射。这种效果有时被称为渗色。漫反射是入射光在各个方向上均匀反射,即不受观测方向或位置的影响。

这里是一个由全局光照创建的场景,只有一个方向的光,且仅显示直接照明。光源无法直接照射的区域是黑色的。这是没有全局照明的结果。

3DirectOnly.jpg

这是第一个漫反射全局照明反射的样子。注意左边椅子后面的阴影,这叫做间接阴影,因为它是间接光的阴影。漫反射的亮度和颜色取决于入射光和与之相互作用的材质的漫反射项。每次反射都比前一次更暗,因为一些光被表面吸收而不是被反射。柱子底座比其他表面得到更多的间接光,因为它们更接近直射光下的区域。

3FirstBounceOnly.jpg

这是第二次漫反射。光线变得更弱,分布更均匀。

3SecondBounceOnly.jpg

这是四种漫反射相结合的场景。比起手动放置补光灯,模拟全局照明可以创建更细致和现实的照明。尤其是补光灯无法实现间接阴影。

3FourBounces.jpg

反射光照获取基础材质的漫反射颜色,如下所示。这就是渗色这个术语的由来。渗色最明显的是高度饱和的颜色。你可以通过在基元(Primitive)、材质(Material)或关卡(Level)上提升_DiffuseBoost_来夸大效果。

diffusebounce_T.JPG

diffusebounce_L.JPG

角色照明

全局光照在全局光照重要性体积(Lightmass Importance Volume) 内以较低的分辨率将样本放置在一个统一的三维网格体中,并以较高的分辨率将样本放置在角色可能行走的向上表面上。每个照明示例捕获来自各个方向的间接光照,但不包括直接光照。

第一幅图像是放置在地板上方的照明样本调试可视化,第二幅图像是光照模式下的相同场景。请注意红色挂毯上面的样本如何获取红色反射光。这些样本被可视化为单一颜色,但它们确实捕获了来自各个方向的光线。

02CharacterLighting.jpg

02CharacterLightingLit.jpg

然后间接照明缓存使用这些照明样本内插可移动对象的间接照明。间接照明影响光源环境阴影的颜色,而不是方向。使用显示(Show)->可视化(Visualize)->体积照明样本(Volume Lighting Samples)在您的视口中预览它们。

有关更多信息,请参阅间接照明缓存(Indirect Lighting Cache) 文档。

限制

  • 体积样本放置的默认设置将导致在大型贴图中出现大量样本。这将导致间接照明缓存插值时间非常大。使用静态光源等级缩放(Static Lighting Level Scale)减少大贴图中的样本计数。

  • 全局光照重要性体积外的可移动对象将采用黑色间接照明。

环境遮挡

全局光照会自动计算出详细的间接阴影,但是为了艺术目的夸大间接阴影或者增强场景的接近感是很有用的。

环境遮挡(Ambient occlusion) 是您从一个均匀明亮的上半球得到的间接阴影,就像阴天。全局光照支持计算环境遮挡,将其应用于直接和间接照明,然后将其烘焙成光照图。默认情况下,环境遮挡是启用的,可以通过取消选中世界场景设置(World Settings)下的全局光照(Lightmass)的全局光照设置(Lightmass Settings)中的使用环境遮挡(Use Ambient Occlusion)复选框来禁用。

第一幅图是一个有间接照明但没有环境遮挡的场景。第二幅图是有环境遮挡的相同场景,且环境遮挡应用于直接和间接照明,注意对象聚集的地方变暗。

9NoAO.jpg

9WithAO.jpg

无环境遮挡

环境遮挡

环境遮挡设置

属性

说明

可视化环境遮挡(Visualize Ambient Occlusion)

在构建照明时,仅使用遮挡因子覆盖光照图。这有助于准确地了解遮挡因子是什么,并比较不同设置的效果。

最大遮挡距离(Max Occlusion Distance)

一个对象对另一个对象造成遮挡的最大距离。

完全遮挡样本比例(Fully Occluded Samples Fraction)

为了达到完全遮挡,必须遮挡的样本的比例。请注意,还有一个逐基元FullyOccludedSamplesFraction,它允许控制一个对象对其他对象造成的遮挡量。

遮挡指数(Occlusion Exponent)

指数越高,对比度越高。

92Defaults.jpg

92MaxDist5.jpg

92MaxPct80.jpg

92Exponent2.jpg

默认AO设置(最大遮挡距离(MaxOcclusionDistance)为200,完全遮挡样本比例(FullyOccludedSamplesFraction)为1.0,遮挡指数(OcclusionExponent)为1.0)。

最大遮挡距离(MaxOcclusionDistance)为5。去除低频遮挡,只留下角落遮挡。

完全遮挡样本比例(FullyOccludedSamplesFraction)为0.8。所有范围内的遮挡都变暗了,任何80%遮挡或以上的区域都饱和成黑色。

遮挡指数为2。遮挡从中等过渡到饱和黑色要快得多,遮挡被推到角落里。

当间接照明反射次数大于0时,在照明构建时间范围内,环境遮挡几乎是没有的。

限制

  • 环境遮挡需要相当高的光照图分辨率才能良好显示,因为它在角落变化很快。

  • 预览质量构建在预览环境遮挡方面做得不是很好,因为AO需要非常密集的光照样本(就像间接阴影)。

遮罩阴影

全局光照在计算阴影时考虑了BLEND_Masked材质的不透明度遮罩。在编辑器视口中被剪切的部分材质也不会引起任何投影,这允许从树和叶子进行更详细的投影。

masked.JPG

masked_L.JPG

仅适用于固定光源的特性

环境法线天空遮挡

当启用具有固定移动性的天空光照(Sky Light) 具有固定移动能力时,全局光照以环境法线的形式产生定向遮挡。

距离场阴影贴图

全局光照计算固定光源(Stationary Lights) 的距离场阴影贴图。距离场阴影贴图即使在较低的分辨率下也能很好地保持其曲线形状;然而,它们不支持区域阴影或半透明阴影。

仅适用于静态光源的特性

区域光源和阴影

采用全局光照时,所有具有静态移动性的光源在默认情况下都是区域光源。点光源和聚光灯光源使用的形状是一个球体,其半径是由全局光照设置(Lightmass Settings)下的光源半径(Light Source Radius)设置的。定向光源使用一个圆盘,位于场景的边缘。光源的大小是控制阴影柔度的两个因素之一,因为较大的光源会产生较柔和的阴影。另一个因素是从接收位置到阴影投射物的距离。随着距离的增加,阴影变得柔和,就像在现实生活中一样。

第一幅图像是一个静态定向光源,只有静态照明,半影大小在任何地方都是相同的。在第二幅图像中,全局光照计算的区域阴影的清晰度由光源大小和遮挡物距离控制。注意柱子阴影在接近地面的地方如何变得更加清晰。

7OldUE3Shadows.jpg

7LightmassShadows.jpg

点光源和聚光灯光源的半径用黄色线框表示,影响半径用蓝绿色线框表示。在大多数情况下,您需要确保光源不与任何投射阴影的几何体相交,否则光线将在该几何体的两侧发出。

AreaLight.png

半透明阴影

光在通过应用到静态阴影投射网格体的半透明材质之后,将失去一些能量,导致半透明的阴影。

translucent_T.JPG

半透明阴影颜色

穿过材质的光称为透射光,每个颜色通道的透射光量在0到1之间。值为0表示完全不透明,1意味着入射光可以不受影响的穿过。由于透射光没有材质输入,所以目前是由以下其他材质输入得出的:

  • 光照材质

    • BLEND_Translucent和BLEND_Additive:透射光 = Lerp(白色(White)、基本颜色(BaseColor)、不透明度(Opacity))

    • BLEND_Modulate:透射光 = 基本颜色(BaseColor)

  • 无光照材质

    • BLEND_Translucent和BLEND_Additive:透射光 = Lerp(白色(White)、自发光(Emissive)、不透明度(Opacity))

    • BLEND_Modulate:透射光 = 自发光(Emissive)

这意味着在不透明度为0时,该材质不会过滤掉入射光,也不会有半透明的阴影。在不透明度为1时,入射光将被材质的自发光或基本颜色(取决于是否被点亮)过滤。请注意,间接照明有时会洗掉半透明的阴影,使它们比半透明材料的自发光或漫反射更不饱和。

半透明阴影清晰度

有几个因素控制半透明阴影清晰度。

第一幅图像中使用大光源(光源角度为5的定向光源),第二幅图像中使用小光源(光源角度为0)。

5LargeLightSource.jpg

5SmallLightSource.jpg

第一幅图像中使用了一个小光源,但是光照图的分辨率太低,无法捕捉到清晰的半透明阴影。第二幅图像中,材质导出的分辨率过低(由材质编辑器中的导出分辨率比例(Export Resolution Scale)控制),无法捕捉到清晰的阴影。

5LowLightmapResolution.jpg

5LowExportResolutionScale.jpg

间接光源也受到半透明材质的影响。该图像中的窗口根据光线的透射情况对入射光进行过滤,然后光线会在场景中来回反射,且颜色会发生变化。

TranslucentShadowIndirectLight.jpg

限制

  • 半透明材质(Translucent Materials) 目前不散射光,所以它们不会在其周围的对象上渗色。

  • 第一个漫反射目前不受半透明阴影的影响。这意味着,通过半透明材质的第一反射间接光源不会被该材质的 透射(Transmission) 过滤。

  • 目前不支持折射(透射光的焦散)。

使用全局光照获取最佳质量

使灯光显眼

漫反射纹理

渲染期间,光照像素颜色被确定为基本颜色 * 照明,所以基本颜色直接影响光照的可见度。高对比度或暗漫反射纹理使光照很难被注意到,而低对比度中距离漫反射纹理让光照的细节表现出来。

比较第一幅图像中使用中等漫反射纹理构建的场景和第二幅图像中同样使用全局光照但带有噪点的黑色漫反射纹理构建的场景照明清晰度。第二幅图像中,只有最频繁的变化才会在场景中被注意到,比如阴影过渡。

94MidToneDiffuse.jpg

94DarkDiffuse.jpg

无光照(Unlit) 视图模式可用于查看漫反射项。第一幅图像中的场景在无光照视图模式下看起来更加平坦和单调,这意味着所有的工作都是由光照完成的,最终像素颜色的变化主要是由于光照的不同。(为了获得良好的照明,在无光照视图模式下,您的场景应看起来单调乏味。)将照明和宏观特征烘焙到漫反射纹理中将抵消照明。

94MidToneDiffuseUnlit.jpg

94DarkDiffuseUnlit.jpg

在无光照图像的几个部分上使用编辑器的颜色选择器,我们可以看到第一幅图像中场景的漫反射值约为0.5,而第二幅图像中场景的漫反射值约为0.08。在Photoshop中查看这些无光照图像的直方图可以很好地了解漫反射纹理的分布。

Photoshop向您展示了伽马空间中的颜色值,因此186(.73)的值(而不是127(.5)的值)实际上介于黑色和白色之间。*第一幅图像显示了直方图的样子,以便获得显著的照明。

hist_Spo.jpg hist_UT.jpg

照明设置

  • 避免环境照明!像环境立方体贴图这样的环境照明会在您的关卡中添加一个恒定的环境项,从而减少间接光照区域的对比度。

  • 设置光源,使直接光照区域和间接光照区域之间有鲜明对比。对比度会让您更容易找到阴影过渡的位置,也会让您的关卡更有深度感。

  • 设置光源,使明亮区域不是太亮,黑暗区域不全黑,而仍然有值得注意的细节。检查最终目标显示器上的黑暗区域是很重要的。

改善照明质量

光照图分辨率

使用高分辨率的纹理光照图是获得清晰、高质量照明的最好方法。使用高光照图分辨率的缺点是占用更多纹理内存和增加构建时间,所以需要做一个权衡。理想情况下,场景中的大部分光照图分辨率应该分配在高视觉影响区域和有高频阴影的地方。

全局光照解算器质量

全局光照解算器(Lightmass Solver) 设置是根据“照明构建选项(Lighting Build Options)”对话框中请求的构建质量自动设置的。生产应该提供足够好的质量,即在应用漫反射纹理时,穿帮不是很明显。

获取最佳照明构建时间

有几种方法可以缩短全局光照构建时间:

  • 只有高频率(快速变化)照明区域才有高分辨率的光照图。减少笔刷表面和静态网格体的光照图分辨率,这些表面和网格体不在直接光照范围内,或不受到清晰间接阴影的影响。这将在最明显的区域给您高分辨率的阴影。

  • 对玩家来说永远不可见的表面应该设置尽可能低的光照图分辨率。

  • 使用全局光照重要性体积 来包含最重要的区域(仅在可玩区域附近)。

  • 优化整个贴图的光照图分辨率,使网格体的构建时间更加均匀。无论有多少台机器在进行分布式构建,照明构建的速度都不能快于最慢的单个对象。避免大的连续网格体包围关卡的一大部分和使用高光照图分辨率。如果将它们分解成更模块化的部件,特别是在具有许多核心的机器上,那么构建时间将会更短。

  • 有很多自遮挡的网格体需要更长的时间来构建,例如,有许多层相互平行的地毯比平坦的地板需要更长的时间来构建。

照明构建信息(Lighting Build Info) 对话框是改善照明构建时间的一个非常重要的工具。首先,在您想要查看统计数据的关卡中构建照明。然后,打开 构建(Build)->照明信息(Lighting Info)->照明StaticMesh信息(Lighting StaticMesh Info) 下的对话框。将下拉列表更改为 照明构建信息(Lighting Build Info)。这将显示网格体的排序列表,以及它们计算光照的时间。

LightingBuildInfo.png

全局光照设置

全局光照重要性体积

许多贴图在编辑器中已经网格化到网格的边缘,但是需要高质量照明的实际可玩区域要小得多。全局光照取决于关卡的大小发射光子,因此这些背景网格体将大大增加需要发射的光子数量,而照明构建时间也将增加。全局光照重要性体积控制全局光照发射光子的区域,允许您将其集中在需要清晰间接照明的区域。在重要性体积之外的区域在较低的质量下只能得到一次间接照明的反射。

第一幅图像中显示了多玩家地图的系统占用线框视图。需要高质量照明的实际可玩区域是中心的绿色小团。

第二幅图像中显示了多玩家地图可玩区域的近景,并正确选择了设置 全局光照重要性体积(Lightmass Importance Volume)。全局光照重要性体积将该区域的半径从80,000单位减少到10,000单位,照明面积小了64x倍。

JacintoImportanceFar.jpg

JacintoImportanceNear.jpg

要将一个全局光照重要性体积添加到某个关卡中,您可以从 模式(Modes) 菜单的 体积(Volume) 选项卡中将这个 全局光照重要性体积(Lightmass Importance Volume) 对象拖动到关卡中,然后将其缩放到所需的大小。

AddingLightMassVolume.png

您还可以通过单击 Actor 下的 细节(Details) 面板中的 转换Actor(Convert Actor) 下拉框,将画笔转换为全局光照重要性体积。

ConvertBrush_Actor.png

单击该下拉框后,将出现一个菜单,您可以在其中选择要替换画笔的Actor类型。

ConvertBrush_LightMassVol.png

如果您放置多个全局光照重要性体积,那么大多数照明工作将通过包含所有这些体积的边界框来完成。但是,体积照明样本仅放置在较小的体块中。

世界场景设置

可在 全局光照(Lightmass) 部分下的 世界场景设置(World Settings) 窗口中调整全局光照设置。

worldlightmasssettings.png

可从主 工具栏(Toolbar) 单击WorldSettings_Icon.png图标以访问 世界场景设置(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)设置。

LightLightmassSettings.png

属性

说明

间接照明饱和度(Indirect Lighting Saturation)

0将导致间接照明完全不饱和,1将保持不变。

阴影指数(Shadow Exponent)

控制阴影半影的衰减,或区域从完全光照到完全阴影的变化速度。

光源角度(Light Source Angle)

对于 仅定向光源(Directional Lights Only),确定光的自发光面相对于接收器的延伸角度,影响半影大小。

基元组件设置

下面是可以在从 模式(Modes) 菜单的 几何体(Geometry) 选项卡中添加的 画笔(Brush) 上进行调整的全局光照(Lightmass)设置。这些选项可以在 画笔(Brush)细节(Details) 面板下找到。

objectlightmasssettings.png

属性

说明

漫射增强(Diffuse Boost)

缩放应用到此对象的所有材质的漫反射效果。

完全遮挡样本比例(Fully Occluded Samples Fraction)

为了实现对其他对象的完全遮挡,从此对象中采集的AO样本必须被遮挡的比例。这允许控制一个对象对其他对象造成多少遮挡。

仅间接阴影(Shadow Indirect Only)

如果选中此项,则此对象只会对间接照明产生阴影。这对于草非常有用,因为渲染的几何体只是实际几何体的表示,并不一定会投射出精确形状的阴影。它对草也很有用,因为产生阴影的频率太高,无法存储在预计算的光照图中。

使用双面照明(Use Two Sided Lighting)

如果选中此项,该对象将被照亮,就好像它接受来自其多边形两侧的光照。

基本材质设置

下面是可以在 细节(Details) 面板下的基本节点(Base Node)的材质(Material)中进行调整的全局光照(Lightmass)设置。

有关材质编辑器的更多信息,请参阅 材质编辑器用户指南

materialsettings.png

属性

说明

像在遮罩状态一样下投射阴影(Cast Shadow as Masked)

对于半透明材质,将该材质视为已被遮罩的材质,以用于阴影投射。

漫射增强(Diffuse Boost)

缩放此材质对静态照明的漫反射效果。

导出分辨率缩放(Export Resolution Scale)

缩放导出此材质属性时的分辨率。当需要细节时,这对于提高材质分辨率非常有用。