动态场景阴影

概述

Dynamic Scene Shadows (动态场景阴影)内容示例贴图展示了如何通过使用 Cascading Shadow Mapping (层叠型阴影贴图)来创建具有烘焙光照的动态阴影特效,而层叠型阴影贴图是专门用来和 Directional Light Actors (定向光源Actors)一起使用的。它们比烘焙阴影要好,因为它们可以对动态对象进行阴影处理,比如对具有随风飘动的树叶的树的场景创建更为真实的效果。

层叠型阴影贴图的工作原理

层叠型阴影贴图 方式将视锥体分为一系列基于距离的阴影贴图,每个贴图都会随您对摄像机的远离而逐渐降低分辨率。这表示离玩家视野最近的阴影有最高的分辨率,离得最远的则分辨率最低。在 Dynamic Shadow Distance(动态阴影距离) 属性的范围之外,系统混合回静态烘焙阴影。这样的话,您就可以制作一个具有烘焙光照的场景,并随着您与对象的远离而平滑过渡到静态烘焙阴影。

CascadedShadowMapsImage.png

在上图中,请注意动态阴影(离摄像机较近的位置)在黄线位置附近消失,这被用来指定动态阴影距离。

  1. 这个区域显示的是静态阴影

  2. 这个是离摄像机较近的区域,显示的是层叠型阴影贴图

层叠型阴影贴图属性

定向光照Actor细节 面板中,您可以找到 Cascaded Shadow Map (层叠型阴影贴图)分类。其中有以下属性。

属性 描述
Dynamic Shadow Distance (MovableLight and StationaryLight) 动态阴影距离(可移动光源和固定光源) 这个属性值控制您看到的层叠型阴影贴图与摄像机的距离。除此之外,您将仅能看到预计算的阴影贴图。设置为 0 会有效地禁用动态阴影。请注意有一个对 可移动光源固定光源 的设置。
Num Dynamic Shadow Cascades (动态阴影层叠数量) 这个属性值控制了划分动态阴影距离的层叠部分的数量。更多的层次将会使得一定距离的阴影分辨率更佳,但对性能的损耗也更大。
Cascade Distribution Exponent (层叠分布指数) 这个属性值控制了在不同的层叠间发生的摄像机变换在多近距离内会发生。这个值被作为 动态阴影距离 的分数值。这个值如果为1,则会导致变换发生的距离与它们的分辨率成一定比例。大于1的值则会将变换更拉近摄像机。
Cascade Transition Fraction (层叠变换分数值) 这个属性值控制从一个层叠到另一个层叠间的淡入淡出比例。随着数字愈加接近0,转换变得更频繁。这个值一旦为0,则不再发生转换,导致在不同的层叠间产生尖锐边缘。
Shadow Distance Fadeout Fraction (阴影距离淡出分数) 这个值会将到层叠阴影贴图的变换作为一个整体进行柔化处理,0表示尖锐变换,而1表示完全的柔化。值0.1在一般情况下已足够。改变这个设置不产生性能消耗。
Use Inset Shadows for Movable Objects (对可移动对象使用嵌入阴影) 这个选项对由固定光源照亮的可移动对象使用嵌入阴影。当可移动对象在 Dynamic Shadow Distance (动态阴影距离)外进行移动时,这就很有用了,特别是在 Dynamic Shadow Distance (动态阴影距离)被设置为一个较低的值时。当 Dynamic Shadow Distance (动态阴影距离)的值非常大时(当前>8000),这个选项就会被强制关闭。