天空光照

概述虚幻引擎4中的天空光照。

Windows
MacOS
Linux

Skylight_Header.png

天空光照(Sky Light)采集关卡的远处部分并将其作为光源应用于场景。这意味着,即使天空来自大气层、天空盒顶部的云层或者远山, 天空的外观及其光照/反射也会匹配。你还可以手动指定要使用的立方体贴图。

场景采集

天空光照将仅在某些情况下才采集场景:

  • 对于 静态天空光照(Static Sky Lights),构建光照时会自动进行更新。

  • 对于 固定(Stationary)可移动天空光照(Movable Sky Lights),在加载时更新一次,只有调用 重新采集天空(Recapture Sky) 时才会进一步更新。这可以通过 详细信息(Details) 面板或通过游戏中的蓝图调用执行。

如果你更改了天空盒使用的纹理,天空盒不会自动知道要进行更新。你需要使用上述方法之一为其进行更新。

应使用天空光照而不是环境立方体贴图来表示天空的光照,因为天空光照支持局部阴影,局部阴影可以防止室内区域被天空照亮。

移动性

与其他光源类型 类似,天空光照可以设置为以下 移动性 之一:

skylightIcon.png

移动性

说明

静态(Static)

游戏中不能更改光照。这是最快的渲染方法,并且允许烘焙的光照。

固定(Stationary)

构建光照时,将仅从静态几何体采集阴影和光照反射。所有其他光照都将为动态。该设置还允许光线在游戏中更改颜色、强度和立方体贴图,但它不会移动且允许局部烘焙光照。

可移动(Movable)

可以根据需要在游戏中移动和更改光照。

静态天空光照

设置为 静态(Static) 的天空光照将被完全烘焙到关卡中的静态对象的光照图中,因此不需要任何成本。在对该光源的属性进行编辑后,所做的更改将不可见, 直至为关卡重新构建了光照。

使用静态天空光照时,将仅采集关卡中移动性设置为 静态(Static)固定(Stationary) 的Actor和光源,并且将仅使用它们进行照明。此外,为了避免反馈循环, 使用静态天空光照时,只能采集材质的自发光贡献部分。因此,请确保任何天空盒具有设置为 无光照(Unlit) 的材质。

固定天空光照

采用 固定可移动性**的 天空光照会使用 Lightmass** 烘焙阴影。在关卡中放置固定天光后,你必须重新构建光照才能获得烘焙后的阴影效果。在这之后,你就可以随意更改天光而无需重新构建。

Lightmass 烘焙的天光阴影会将方向性遮挡信息保存在所谓的 环境法线(Bent Normal) 中。该方向表示纹素(texel)指向遮挡最少区域的方向。大部分被遮挡的区域将借助此方向来计算天空光照,而非曲面法线,从而极大提升裂缝处的光照质量。

仅开启AO的天光

开启环境法线遮挡(bent normal occlusion)的天光

第一张图显示了仅开启AO的天光的效果。第二张图显示了开启环境法线遮挡的天光的效果。注意,裂缝中的表面在感知光照方向时是如何"步调一致"的。

只有采用 静态固定可移动 类型的组件和光源才会被采集并被用于固定天光的光照。

和所有 固定光源 一样,直接光照的光照颜色可以在运行时通过 蓝图Matinee 动态更改。然而,间接光照是直接烘培进光照贴图的,无法在运行时修改。间接光照的强度可以通过 IndirectLightingIntensity 控制。

仅直接光照

为固定天光计算的直接光照和漫反射GI

可移动天空光照

设置为 可移动(Movable) 的天空光照不使用任何形式的预计算。当设置为采集场景时,它采集具有任何移动性的组件和光源。

距离场环境遮挡

该功能在默认情况下未开启,但可使用距离场 功能启用。

可移动天空光照的阴影由距离场环境遮挡 从每个刚性对象周围生成的 有向距离场体积提供。距离场环境遮挡支持刚性网格体可以移动或隐藏的动态场景变化,同时它会影响遮挡。

点击查看大图。

查看如何使用距离场环境遮挡 页面了解更多信息和示例。

预计算天空光照

使用烘焙光照和静态或固定天空光照时,照明和阴影数据将存储在光照图中。下面几个小节将讨论 全局光照 支持的一些功能。

增强型静态天空光照方向性

在虚幻引擎4.18之前,静态天光通常用带3阶球谐(3rd Order Spherical Harmonic)的全局光照来表示,它无法采集日出或日落时可能出现的细节。 现在使用经过过滤的立方体贴图,默认情况下会得到更高的分辨率。全局光照还会基于最终聚集光线的大小选择相应的立方体贴图MIP , 以避免任何失真。

要查看此类交互的示例,请前往 引擎内容(Engine Content) > 贴图模板(MapTemplates) > 天空(Sky),并选择 SunsetAmbientCubemap,因为它将显示一个很好的示例。

3阶球谐 | (使用前)

经过滤的立方体贴图 | (使用后)

使用Epic的 Robo Recall 中的起始办公室关卡进行改进的示例

最大的区别可以在具有大量亮度和颜色变化之天空光照立方体贴图的严重遮挡场景中看到。

暗箱

随着静态天空光照的方向性增强,现在可以利用一个足够小的开口重新创建针孔相机效果(暗箱 )。 开口越小,天空光照就越有方向性。

天空光照源立方体贴图

产生的光源构建

单击图片以查看完整尺寸。

单击图片以查看完整尺寸。

固定天空光照的环境法线

对于各个光照分开烘焙的固定天空光照,全局光照烘焙的阴影将方向遮挡信息存储在所谓的 环境法线(Bent Normal) 中。这是 从纹素到最不被遮挡方向的方向。大部分被遮挡的区域将此方向而非表面法线用于天空光照,这样便提高了缝隙的质量。

仅用环境遮挡的静态天空光照

带环境法线的固定天空光照Stationary Sky Light with Bent Normal

有关更多信息,请访问环境法线贴图 页面。

多次反射

通过在 世界场景设置(World Settings) > 全局光照(Lightmass) 中调整 天空光照反射次数(Num Sky Lighting Bounces) 设置,即可支持多次反射全局光照的间接光线。

LightmassSettings.png

设置要使用的天空光照反射次数。

Number of Bounces: 1

Number of Bounces: 10

为了使天空光照的多次反射明显可见,在大多数情况下,你的材质需要具备高漫反射值。例如,如果漫射值为.18(18%灰色),第二次的天空光照反射将仅贡献 18^3 = 0.006的光发射能量,这很难为肉眼所察觉。如果漫射值为0.5,第二次的天空光照反射将贡献0.125的光发射能量,并且显而易见。

每增加一次反射都会增加非分布式的构建时间,因此当未使用密集(Swarm)分布时要谨慎使用。

属性

天空光照组件的属性分为两类:光源和天空光照。你可以从Actor的 细节(Details) 面板访问它们。

SkyLightSettings.png

属性

说明

源类型(Source Type)

是采集远处场景并将其作为光源还是使用指定的立方体贴图。采集场景时,任何与天空光照位置的距离超过SkyDistanceThreshold的部分都将被包括在内。

SLS采集场景(SLS Captured Scene)

从采集的场景构造天空光照。任何与天光位置的距离超过天空距离阈值(Sky Distance Threshold )的部分都将被包括在内。

SLS指定立方体贴图场景(SLS Specified Cubemap)

从指定的立方体贴图构造天空光照。

立方体贴图(Cubemap)

如果源类型(Source Type)设置为SLS_SpecifiedCubemap,指定天空光照要使用的立方体贴图。

源立方体贴图角度(Source Cubemap Angle)

当源类型(Source Type)设置为SLS指定立方体贴图(SLS Specified Cubemap)时,为旋转源立方体贴图的角度。

立方体贴图分辨率(Cubemap Resolution)

经过最顶级处理的立方体贴图MIP的最大分辨率。它还必须是2次幂的纹理。

天空距离阈值(Sky Distance Threshold)

与天空光照的距离,在此处,任何几何体都应被视为天空的一部分(亦为反射采集所使用)。

强度比例(Intensity Scale)

天光发出的总能量。

影响世界场景(Affects World)

光源是否可以影响世界场景,或者说是否被禁用。

投射阴影(Cast Shadows)

光源是否应该投射阴影。

间接光照强度(Indirect Lighting Intensity)

调整该光源的间接光照贡献程度。0会禁用该来自光源的所有全局光照(GI)效果。

体积散射强度(Volumetric Scattering Intensity)

该光源的体积散射的强度。它缩放强度(Intensity)和光源颜色(Light Color)。

仅采集自发光(Capture Emissive Only)

仅采集自发光材质。跳过所有照明,使采集更便宜。当使用采集每一帧(Capture Every Frame)时,建议使用此方法。

下半球为纯色(Lower Hemisphere is Solid Color)

是否所有来自下半球的光照都应设置为零。这有助于防止从下半球溢色。

下半球颜色(Lower Hemisphere Color)

使用取色器为下半求选择颜色。

投射静态阴影(Casts Static Shadows)

光源是否应该投射来自静态对象的阴影。同时,该选项要求"投射阴影"设置为真。

投射动态阴影(Casts Dynamic Shadows)

光源是否应该投射来自动态对象的阴影。同时,该选项要求"投射阴影"设置为真。

影响半透明光照(Affect Translucent Lighting)

光源是否影响半透明效果。假如场景中有大量小型光源,禁用该选项能节省GPU计算时间。

传播(Transmission)

来自天光的光线是否能穿透带有次表面散射轮廓的表面。要求光源是可移动的。

投射体积阴影(Cast Volumetric Shadow)

光源是否投下体积雾(Volumetric Fog)阴影。

投射深度阴影(Cast Deep Shadow)

光线是否应该投射高质量的发束自阴影。该选项启用后,光线会产生额外的GPU开销。

投射光线追踪阴影(Cast Ray Traced Shadows)

阴影映射或光线追踪(可用时)是否参与光源阴影的计算。

影响光线追踪反射(Affect Ray Tracing Reflections)

光线追踪反射启用后,光线是否会影响反射中的对象。

影响光线追踪全局光照(Affect Ray Traced Global Illumination)

光线追踪全局光照启用后,光线是否会影响全局光照。

来自可移动对象的阴影

使用胶囊体阴影 (对于骨架网格体)或 距离场间接阴影 (对于刚性网格体),可实现从可移动对象到环境上的软阴影。它们需要单独设置才能正常工作。

局限性

以下这些功能对天空光照很有用,但尚未实现:

  • 可移动对象(角色)投射到场景上的柔和阴影。

  • 以动态方式重新采集场景,以便生成 固定可移动 版本。SkyLightComponent有一个叫做RecaptureSky()的蓝图函数可供使用,但它会造成卡顿。

标签
Select Skin
Light
Dark
欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见