全局光照(Lightmass) 创建具有复杂光交互作用的光照图,例如区域阴影和漫反射。它用于预计算具有固定和静止运动性的光源的照明贡献部分。
编辑器和全局光照之间的通信由 Swarm Agent 处理,它管理本地的照明构建,也可以将照明构建分发到远程机器。默认情况下以最小化方式打开的Swarm Agent还会跟踪照明构建进度,并让你了解哪些机器为你工作,它们在做什么,以及每个机器使用了多少线程。
下图是Swarm Agent的一个示例图像(靠近底部的条形图显示了构建的完成程度)静态和固定灯源的特性
漫反射
漫反射(Diffuse Interreflection) 是目前为止视觉上最重要的全局照明效果。在默认情况下,光源以全局光照反射,而材质的基本颜色(BaseColor)项控制有多少光(和什么颜色)向各个方向反射。这种效果有时被称为渗色。漫反射是入射光在各个方向上均匀反射,即不受观测方向或位置的影响。
这里是一个由全局光照创建的场景,只有一个方向的光,且仅显示直接照明。光源无法直接照射的区域是黑色的。这是没有全局照明的结果。
这是第一个漫反射全局照明反射的样子。注意左边椅子后面的阴影,这叫做间接阴影,因为它是间接光的阴影。漫反射的亮度和颜色取决于入射光和与之相互作用的材质的漫反射项。每次反射都比前一次更暗,因为一些光被表面吸收而不是被反射。柱子底座比其他表面得到更多的间接光,因为它们更接近直射光下的区域。
这是第二次漫反射。光线变得更弱,分布更均匀。
Character lighting角色照明
全局光照在全局光照重要体积(Lightmass Importance Volume) 内以较低的分辨率将样本放置在一个统一的三维网格体中,并以较高的分辨率将样本放置在角色可能行走的向上表面上。每个照明示例捕获来自各个方向的间接光照,但不包括直接光照。然后间接照明缓存使用这些照明样本内插可移动对象的间接照明。间接照明影响光源环境阴影的颜色,而不是方向。使用显示(Show)->可视化(Visualize)->体积照明样本(Volume Lighting Samples)在你的视口中预览它们。
限制
1.体积样本放置的默认设置将导致在大型贴图中出现大量样本。这将导致间接照明缓存插值时间非常大。使用静态光源等级缩放(Static Lighting Level Scale)减少大贴图中的样本计数。
2.全局光照重要体积外的可移动对象将采用黑色间接照明。
环境遮挡
全局光照会自动计算出详细的间接阴影,但是为了艺术目的夸大间接阴影或者增强场景的接近感是很有用的。
环境遮挡(Ambient occlusion) 是你从一个均匀明亮的上半球得到的间接阴影,就像阴天。全局光照支持计算环境遮挡,将其应用于直接和间接照明,然后将其烘焙成光照图。默认情况下,环境遮挡是启用的,可以通过取消选中世界场景设置(World Settings)下的全局光照(Lightmass)的全局光照设置(Lightmass Settings)中的 使用环境遮挡(Use Ambient Occlusion) 复选框来禁用。
限制
环境遮挡需要相当高的光照图分辨率才能良好显示,因为它在角落变化很快。
预览质量构建在预览环境遮挡方面做得不是很好,因为AO需要非常密集的光照样本(就像间接阴影)。
遮罩阴影
全局光照在计算阴影时考虑了BLEND_Masked材质的不透明度遮罩。在编辑器视口中被剪切的部分材质也不会引起任何投影,这允许从树和叶子进行更详细的投影。仅适用于固定光源的特性
环境法线天空遮挡
当启用具有固定移动性的天空光照(Sky Light) 具有固定移动能力时,全局光照以环境法线的形式产生定向遮挡。
距离场阴影贴图
全局光照计算固定光源(Stationary Lights) 的距离场阴影贴图。距离场阴影贴图即使在较低的分辨率下也能很好地保持其曲线形状;然而,它们不支持区域阴影或半透明阴影。
仅适用于静态光源的特性
区域光源和阴影
采用全局光照时,所有具有静态移动性的光源在默认情况下都是区域光源。点光源和聚光灯光源使用的形状是一个球体,其半径是由全局光照设置(Lightmass Settings)下的光源半径(Light Source Radius)设置的。定向光源使用一个圆盘,位于场景的边缘。光源的大小是控制阴影柔度的两个因素之一,因为较大的光源会产生较柔和的阴影。另一个因素是从接收位置到阴影投射物的距离。随着距离的增加,阴影变得柔和,就像在现实生活中一样。
半透明阴影
光在通过应用到静态阴影投射网格体的半透明材质之后,将失去一些能量,导致半透明的阴影。
半透明阴影颜色
穿过材质的光称为透射光,每个颜色通道的透射光量在0到1之间。值为0表示完全不透明,1意味着入射光可以不受影响的穿过。由于透射光没有材质输入,所以目前是由以下其他材质输入得出的:
光照材质
1.BLEND_Translucent和BLEND_Additive:透射光 = Lerp(白色(White)、基本颜色(BaseColor)、不透明度(Opacity))
2.BLEND_Modulate:透射光 = 基本颜色(BaseColor)
无光照材质
1.BLEND_Translucent和BLEND_Additive:透射光 = Lerp(白色(White)、自发光(Emissive)、不透明度(Opacity))
2.BLEND_Modulate:透射光 = 自发光(Emissive)
这意味着在不透明度为0时,该材质不会过滤掉入射光,也不会有半透明的阴影。在不透明度为1时,入射光将被材质的自发光或基本颜色(取决于是否被点亮)过滤。请注意,间接照明有时会洗掉半透明的阴影,使它们比半透明材料的自发光或漫反射更不饱和。
半透明阴影清晰度
有几个因素控制半透明阴影清晰度。
限制
1.半透明材质(Translucent Materials) 目前不散射光,所以它们不会在其周围的对象上渗色。
2.第一个漫反射目前不受半透明阴影的影响。这意味着,通过半透明材质的第一反射间接光源不会被该材质的 透射(Transmission) 过滤。
3.目前不支持折射(透射光的焦散)。
使用全局光照获取最佳质量
使灯光显眼
漫反射纹理
渲染期间,光照像素颜色被确定为基本颜色 * 照明,所以基本颜色直接影响光照的可见度。高对比度或暗漫反射纹理使光照很难被注意到,而低对比度中距离漫反射纹理让光照的细节表现出来。
无光照(Unlit) 视图模式可用于查看漫反射项。
全局照明(也称为间接光照和间接照明)模拟与几何体和材质表面的照明交互,以向场景和项目中添加逼真的照明。该模拟还考虑了与之相互作用的材料的吸收和反射率。
可通过以下两种方式之一来模拟光在3D世界中的行为方式:使用支持光运动的和动态光交互的实时照明方法,或使用预先计算(或烘焙)的照明信息(存储在应用于几何体的纹理中)表面。虚幻引擎提供了这两种照明场景的方式,并且它们并不是彼此唯一的,因为它们可以彼此无缝融合。
预先计算的全局照明
虚幻引擎中的灯光烘焙系统提供了两种使用Lightmass计算灯光数据的方式:在CPU或GPU上。预计算的照明用于获得不受实时限制影响的高质量结果。但是,由于照明是生成的并存储在应用于几何体的纹理中,因此无法动态更改。
在下面探索可用的预先计算的照明工作流程。