Language:
Page Info
Tags:
Engine Version:
Share

胶囊体阴影总览

虚幻引擎 4(UE4)现能通过 胶囊体阴影 完成对光照区域中角色的柔和阴影支持。胶囊体是代表角色的一个物理资源。 这种投影法会将角色投射在非直接光照区域中的地面上,并在直接光照区域产生柔和阴影,这些效果使用传统阴影映射技术无法实现。

角色胶囊体代表物

物理资源 用于创建角色的近似代表物,以支持极为柔和的阴影。因为胶囊体被附加到角色的骨骼,这将使阴影在场景中进行精确的移动和投射。

Character with Capsule Representation

Capsule Representation Only

地面上的阴影并不代表胶囊体阴影。

用法

ShadowPhysicsAsset.png

打开骨架网格体,在 Asset Details 面板中使用 Shadow Physics Asset 选项指定用于胶囊体阴影的物理资源。

胶囊体阴影设置

CapsuleShadowSettings.png

属性

描述

Capsule Direct Shadow

当胶囊体代表物指定到骨架网格体的 Shadow Physics Asset 槽时,此属性将启用来自直接(可移动)光照的柔和阴影。

Capsule Indirect Shadow

当胶囊体代表物指定到骨架网格体的 Shadow Physics Asset 槽时,此属性将启用来自预计算光照(光照图和天光)的柔和阴影。

Capsule Indirect Shadow Min Visibility

此属性使美术师能够控制胶囊体阴影在非直接光照区域中的明暗度。

胶囊体间接阴影

CapsuleShadowsSetting2.png

启用 胶囊体间接阴影(Capsule Indirect Shadow) 后,角色的胶囊体代表物将用于投射方向性柔和阴影。投射基于在光照构建中全局光照放置和计算的 体积光照范例 。Capsule Indirect Shadows 将使角色在间接光照区域中拥有真实着地的感觉,而传统阴影映射则效果欠佳。

Capsule Indirect Shadow Enabled

Capsule Indirect Shadow Disabled

启用 Capsule Indirect Shadow 后,角色将投下柔和阴影,在只存在反射光照的区域中呈现出真实落地的感觉。

Indirect Capsule Shadows Enabled

Indirect Capsule Shadows Disabled

在光源仅为天空光照的空旷区域中只有些许方向性,因为光线来自四面八方。使用预计算光照时这会在角色下方形成微妙而柔和的“一团”阴影。

在光线透过开口进入的封闭区域中,间接光照缓存 将 对胶囊体阴影赋予方向性和柔和度。其工作原理是角色在空间中移动时在放置的体积光照范例之间进行插值。在门口的角色阴影强度稍弱,具有些许方向性;随着角色逐渐远离门口,阴影的强度和方向性均会增加。

间接最小阴影可见度

美术师还可通过对 Capsule Indirect Shadow Min Visibility 属性的调整来控制效果。此属性可调整间接光照区域中胶囊体阴影的明暗度(使用预计算光照)。这可用于减少这些区域中胶囊体的自身阴影,或柔化阴影的强度,使其与周围的阴影进行较好的混合。

Capsule Shadow Indirect Min Visibility: 0.1 (Default)

Capsule Shadow Indirect Min Visibility: 0.45

胶囊体直接阴影

CapsuleShadowsSetting1.png

胶囊体直接阴影(Direct Capsule Shadow) 启用后,定向光照的 光源角度(Light Source Angle) 和点光源或聚光源的 源半径(Source Radius) 将用于定义接收表面上的阴影柔和度。 这使用户能直接控制直接光照时胶囊体阴影的柔和度。

光源角度

定向光照的 光源角度(Light Source Angle) 属性用于动态投影法,创建柔和的区域阴影。对此属性进行调整后,阴影在投射表面上的效果将更为柔和。

CS_LSA1.png

CS_LSA2.png

Light Source Angle:1.0 (默认)

Light Source Angle:2.0

源半径

与定向光照光源角度的工作原理相似,静态点光源或聚光源的 源半径(Source Radius) 可为角色赋予柔和的阴影。使用较大的源半径时,光线在表面上投射出的阴影将更为柔和。

CS_SR1.png

CS_SR2.png

Source Radius:5.0

Source Radius:15.0

光照在场景中构建后,即可对 Source Radius 属性进行调整,而无需重构光照。此属性只会影响启用了胶囊体阴影或网格体距离场的可移动 actor。

性能

胶囊体阴影的 GPU 性能开销与以下因素成正比:使用的胶囊体数量、角色数量,以及受其阴影影响的画面尺寸。

以使用 Radeon 7870 显卡进行 1080p 渲染为例:

10 个胶囊体的 GPU 开销

时间(以毫秒计)

画面中一个角色

0.29 ms

画面中每增加一个角色

0.05 ms

此实现十分有效,因为它通过感知深度的上采样以半分辨率计算阴影;同时使用画面图块剔除,使投影量控制在需要的范围内。

限制

  • 由于平铺延迟实现使用计算着色器,需要配备 DirectX 11。

  • 任意网格体外形可能出现自身阴影穿帮。

  • 胶囊体代表物只能使用长菱体或球体。

  • 但胶囊体阴影变得非常柔和并成为环境遮挡后,阴影中的穿帮将导致硬线条的出现。

Tags