虚幻引擎4具有四种光源类型:Directional定向灯,Point点光源,Spot聚光灯和Sky天空灯。
定向灯主要用作您的主要户外灯,或者用作任何需要呈现的光,好像它正在投射来自极端或近乎无限距离的光。
点光源是经典的“灯泡”,就像光一样,从一个点向各个方向发光。
聚光灯从单个点发出光,但是它们的光受到一组圆锥体的限制。
天光捕获场景的背景,并将其作为照明应用到关卡的网格物体上。
Directional定向灯
所述平行光模拟从无限远光源发出的光,这意味着该光线投射的所有阴影都将是平行的,这使其成为模拟阳光的理想选择。放置时,可以将“方向光”设置为以下三个“移动性”设置之一:
静态-(左图)表示无法在游戏中更改灯光。这是最快的渲染方法,并允许使用烘焙的照明。
固定的-(也如左图所示),这意味着灯光将仅具有由Lightmass烘焙的静态几何图形的阴影和反射光,所有其他照明都是动态的。此设置还允许灯光在游戏中更改颜色和强度,但是它不会移动并允许部分烘焙的灯光。
可移动-(左图)表示光线完全动态,并允许动态阴影。就渲染而言,这是最慢的,但在游戏过程中具有最大的灵活性。
定向光属性
定向光的属性分为5类:“光”,“光束”,“light mass”,“光函数”和“级联阴影贴图”:
光源
光束
光束
light mass
光照函数:可以在此设置光照投射的logo,树叶轮廓等,也可以加动画
级联阴影图,动态灯光产生的动态阴影
天光
将天光与环境和场景照明一起使用的概述
天光会捕获关卡的远处部分,并将其作为光源应用于场景。这意味着即使您的天空来自大气层,天空盒顶部的层状云或遥远的山脉,天空的外观及其照明/反射也将匹配。您也可以手动指定要使用的立方体贴图。
天光只会在某些情况下捕获场景:
天光的移动性对于“静态天光”,建筑物照明时会自动进行更新。
对于固定式或移动式天窗,更新仅在加载时发生一次,并且只有在调用Recapture时才进一步更新,除非 启用了“实时捕获”功能。两者都可以通过“详细信息”面板进行访问,还可以通过游戏中的“蓝图”来调用“夺回”。
如果更改了Skybox使用的纹理,它将不会自动知道要更新。您需要使用上述方法之一进行更新。
应该使用天光代替环境立方体贴图来表示天空的光,因为天光支持局部阴影,这可以防止室内区域被天空照亮。
静态光
设置为“静态”的“天光”将完全烘焙到关卡中的静态对象的光照贴图中,因此无需花费任何费用。当对光源的属性进行编辑时,在为该关卡重建光源之前,这些更改将是不可见的。
使用静态天光时,只有其移动性设置为“静态”或“固定”的关卡中的“ Actor”和“ Lights”将被捕获并用于照明。此外,只有静态的天光才能捕捉到材料的发射贡献,从而避免了反馈回路。因此,请确保所有天空盒的“材质”都设置为“未点亮”。
固定天光
具有固定天光从Lightmass中得到了烘烤的阴影。将静止天光放置在水平中后,必须重建照明一次才能获得烘焙的阴影。然后,您可以根据需要任意更改天光而无需重建。Lightmass烘焙的“天光”阴影将定向遮挡信息存储在所谓的“弯曲法线”中 。
只有具有静态或固定移动性的组件和灯会被捕获,并用于固定天光照明。
像所有类型的固定光源一样,直接光源的颜色可以在运行时通过Blueprint或Sequencer进行更改。但是,间接照明会烘焙到光照贴图中,并且无法在运行时进行修改。间接照明的数量可以通过来控制IndirectLightingIntensity。
可移动天空光照
设置为 可移动(Movable) 的天空光照不使用任何形式的预计算。当设置为采集场景时,它采集具有任何移动性的组件和光源
距离场环境遮挡
该功能在默认情况下未开启,但可使用距离场 功能启用。
可移动天空光照的阴影由距离场环境遮挡 从每个刚性对象周围生成的 有向距离场体积提供。距离场环境遮挡支持刚性网格体可以移动或隐藏的动态场景变化,同时它会影响遮挡。
预计算天空光照
使用烘焙光照和静态或固定天空光照时,照明和阴影数据将存储在光照图中。
增强型静态天空光照方向性
在虚幻引擎4.18之前,静态天光通常用带3阶球谐(3rd Order Spherical Harmonic)的全局光照来表示,它无法采集日出或日落时可能出现的细节。 现在使用经过过滤的立方体贴图,默认情况下会得到更高的分辨率。全局光照还会基于最终聚集光线的大小选择相应的立方体贴图MIP , 以避免任何失真。
使用Epic的 Robo Recall 中的起始办公室关卡进行改进的示例 最大的区别可以在具有大量亮度和颜色变化之天空光照立方体贴图的严重遮挡场景中看到。暗箱
随着静态天空光照的方向性增强,现在可以利用一个足够小的开口重新创建针孔相机效果(暗箱 )。 开口越小,天空光照就越有方向性。
固定天空光照的环境法线
对于各个光照分开烘焙的固定天空光照,全局光照烘焙的阴影将方向遮挡信息存储在所谓的 环境法线(Bent Normal) 中。这是 从纹素到最不被遮挡方向的方向。大部分被遮挡的区域将此方向而非表面法线用于天空光照,这样便提高了缝隙的质量。
多次反射
通过在 世界场景设置(World Settings) > 全局光照(Lightmass) 中调整 天空光照反射次数(Num Sky Lighting Bounces) 设置,即可支持多次反射全局光照的间接光线。
为了使天空光照的多次反射明显可见,在大多数情况下,你的材质需要具备高漫反射值。例如,如果漫射值为.18(18%灰色),第二次的天空光照反射将仅贡献 18^3 = 0.006的光发射能量,这很难为肉眼所察觉。如果漫射值为0.5,第二次的天空光照反射将贡献0.125的光发射能量,并且显而易见。
每增加一次反射都会增加非分布式的构建时间,因此当未使用密集(Swarm)分布时要谨慎使用。
来自可移动对象的阴影
使用胶囊体阴影 (对于骨架网格体)或 距离场间接阴影 (对于刚性网格体),可实现从可移动对象到环境上的软阴影。它们需要单独设置才能正常工作。
局限性
以下这些功能对天空光照很有用,但尚未实现:
1.可移动对象(角色)投射到场景上的柔和阴影。
2.以动态方式重新采集场景,以便生成 固定 和 可移动 版本。SkyLightComponent有一个叫做RecaptureSky()的蓝图函数可供使用,但它会造成卡顿。
点光源
点光源 的工作原理很像一个真实的灯泡,从灯泡的钨丝向四面八方发出光。然而,为了性能考虑,点光源被简化为从空间中的一个点均匀地向各个方向发射光。放置的点光源可以设置为三个移动设置之一:
静态(Static) - (如左图所示)它意味着,不能在游戏中更改光源。这是最快的渲染方法,并且允许烘焙的光照。
静止(Stationary) - (亦如左图所示)它意味着,光源将仅有自己的阴影和来自 全局光照(Lightmass) 烘焙的静态几何体的反射光照,所有其他光照都将为动态。该设置还允许光源在游戏中更改颜色和强度,但它不会移动且允许局部烘焙光照。
可移动(Moveable) - (如左图所示)这意味着光是完全动态的,并考虑到了动态阴影。从渲染的角度看这是最慢的,但顾及到了游戏进程中的最大灵活性。
点光源属性
点光源(Point Light) 的属性分为4类:光源、光源描述文件、Lightmass和光源函数。
聚光源
聚光源 从圆锥形中的单个点发出光照。使用者可通过两个圆锥形来塑造光源的形状:内圆锥角 和 外圆锥角。在内圆锥角中,光照将达到完整亮度。从内半径的范围进入外圆锥角的范围中时将发生衰减,形成一个半影,或在聚光源照明圆的周围形成柔化效果。光照的半径将定义圆锥的长度。简单而言,它的工作原理类似于手电筒或舞台照明灯。
和其他光源一样,聚光源可设为以下3种移动性设置中的一种:
左侧的聚光源未利用椎体显示光源范围,而右侧的相同聚光源则以椎体效应器显示了自身范围。静态——(左图)即无法在游戏中改变光源。这是最快的渲染方法,可用于已烘焙的光照。
静止——(同见左图)即光源通过Lightmass仅烘焙静态几何体的投影和反射光照。其他则为动态光源。此设置还会允许光源在游戏中改变颜色和强度,但其不会移动并允许部分烘焙光照。
可移动——(左图)即为完全动态光源,可进行动态投影。这是最慢的渲染方法,但在游戏过程中拥有最高灵活性。
聚光源属性
聚光源的属性分为以下4类:光源、光源描述文件、Lightmass,以及光照函数。
矩形光源
描述矩形光源Actor如何将光线散发到场景中,以及能够影响其行为的设置。
矩形光源 从一个定义好宽度和高度的矩形平面向场景发出光线。您可以用它来模拟拥有矩形面积的任意类型光源,如电视或显示器屏幕、吊顶灯具或壁灯。
每个矩形光源有两个关键设置 源宽度(Source Width) 和 源高度(Source Height),用于沿局部Y和Z轴确定矩形尺寸:矩形光源拥有球形衰减半径,就像点光源或聚光源一样。如上图所示,矩形光源仅在沿着局部X轴的正方向的球形衰减范围内发射光线,类似于将聚光源的锥形设置为180度。但是,矩形光源的高光区会显示光源矩形面积的宽度和高度。
像其他类型的光源一样,矩形光源有三个移动性设置:
静态(Static):通过该设置,在为关卡构建照明时,光源的直接和间接照明都会烘焙到光照贴图。这是最快的渲染方法,但也意味着,不能在运行时更改游戏中的光源。
静止(Stationary):通过该设置,在为关卡构建照明时,只会将来自光源的间接照明烘焙到光照贴图。游戏中光源的直接光线投射将逐帧动态计算。该设置保留Lightmass预先计算的高质量柔和阴影和全局光照,但也允许您在运行时更改游戏中的光线颜色和强度。
可移动(Movable):如果使用该设置,则光源是完全动态的。Lightmass完全不会烘焙其任何直接或间接照明。这样在运行时,游戏中的光源可以逐帧从运动物体投射正确的阴影。但是,这种设置通常是渲染最慢的方法。
![](https://img.haomeiwen.com/i1870200/828fbaaaf1d359ae.png?imageMogr2/auto- Snipaste_2021-03-13_13-37-32.png
orient/strip%7CimageView2/2/w/1240)
您选择的移动性设置也会明显影响矩形光源向场景投射光线的方式:
如果您的矩形光源设置为 静态(Static) 或 静止(Stationary),则Lightmass在计算来自光源的光线投射时,会考虑光源的宽度和高度。例如,在上方左图中,来自矩形左右范围的光线到达模型下面,照亮了大部分地面。
在此情况下,从矩形光源发射出来的光线是在其矩形表面的多个点处进行的采样。每个采样光线发射出一小部分光强度,所以您可以将矩形光源理解为,对矩形表面分布的许多微弱点光源的模拟。样本数量随着照明构建质量而增加。预览构建使用少量样本,因此阴影看起来浓淡不均。但是,提高质量设置最终会产生更均匀的结果,如上所示。
如果您将矩形光源的移动性设置为 静止(Stationary),则同时启用 对静止光源使用面积阴影(Use Area Shadows for Stationary Light) 设置可以实现质量更好的阴影效果。
如果您将矩形光源设置为 可移动(Movable),则高光反射仅使用矩形的宽度和高度。实际光线是从矩形光源中心向外发射出来的,类似于点光源。例如,在上方右图中,地板上投射的边缘鲜明的阴影表示,光线是从矩形中心发射出来的。
设置为 静止(Stationary) 或 可移动(Movable) 的矩形光源的渲染成本通常高于具有相同移动性设置的点光源或聚光源。确切的成本范围取决于平台,但总的来说,可移动光源成本高于静止光源。产生成本的部分原因是阴影投射,因此可以关闭 投射阴影(Casts Shadows) 选项来尽量减少额外成本。或者,您可以选择将光源移动性设置为 静态(Static),该设置对运行时渲染性能毫无影响。
矩形光源属性
矩形光源 的属性划分为四个类别:光源 、Lightmass 、光函数 和光描述文件 。
网友评论