学习笔记,不喜勿喷!侵权立删,祝愿大美临沂生活越来越好!
本教程将介绍如何配置虚幻引擎来投射彩色半透明阴影。 此功能在许多应用中都很有用,常见例子就是透过彩色玻璃窗的彩色光。
一、半透明阴影颜色
阴影在穿过半透明表面时所呈现的颜色即为半透明阴影颜色。 这个过程也称为 透射透过材质的彩色光量由其 不透明度(Opacity) 值(介于0和1之间)以及投射到材质上的光强度决定。
- 例如,如果不透明度值设置为 0 ,则材质完全透明,不会透射颜色或投射阴影。
- 如果不透明度设置为 1 ,则材质完全不透明并且完全不透光。
- 当不透明度值 介于0和1 之间时,透过该对象的光将染上材质的 基础颜色 ,并且阴影会继承一些颜色。
二、与各种光照系统的兼容性
并非所有虚幻引擎的光照和全局光照系统都支持半透明阴影颜色。 下方图表详细说明了哪些光照功能支持半透明彩色阴影。
光照系统 | 半透明彩色阴影 |
---|---|
CPU Lightmass | 是,仅限静态光源 |
GPU Lightmass | 是,仅限静态光源 |
Lumen全局光照 | 否 |
硬件光线追踪 | 否 |
路径追踪器 | 是,需要薄的半透明着色模型 |
此列表中值得注意的一点是 Lumen全局光照 ,它目前不支持半透明阴影颜色。
因为Lumen全局光照在所有新的UE5项目中默认启用,这意味着如果你要在关卡中使用彩色半透明阴影,你需要在 项目设置(Project Settings) 或 PostProcessVolume 中手动禁用Lumen。
以下小节介绍了如何设置场景和材质才能投射半透明彩色阴影。
三、在UE5中禁用Lumen
按照以下步骤在当前关卡中禁用Lumen全局光照。
1、在工具栏中点击 创建 图标,并选择 体积(Volumes) > PostProcessVolume 。
2、在关卡中选择PostProcessVolume,并在细节面板(Details Panel)中,搜索 "extent" 。启用 无限范围(未限制)(Infinite Extent (Unbound)) 设置,这样PostProcessVolume的影响范围为整个关卡。
3、在细节面板(Details Panel)中搜索 Global Illumination 。 启用 方法(Method) 设置,并使用下拉菜单将全局光照方法从 Lumen 更改为 无(None) 。
此设置可禁用当前关卡中的动态全局光照,但你仍然可以使用Lightmass从静态光源烘焙全局光照。
四、光照设置
对于光照,最要紧的是,你只能从 移动性(Mobility) 设置为了 静态(Static) 的光源Actor投射彩色半透明阴影。你可以使用以下光源类型。
- 定向光源
- 点光源
- 聚光光源
- 矩形光源
此页面上的所有示例都使用虚幻引擎 昼夜变换(Time of Day) 关卡模板中的定向光源。 在大纲视图(Outliner)中选择 定向光源(Directional Light) ,然后在细节面板(Details Panel)中将 移动性(Mobility) 更改为 静态(Static) 。
间接光照可以冲淡彩色阴影,使它们看起来没有材质的基础颜色饱和。如果你无法在关卡中看到彩色半透明阴影,请考虑降低光源的 间接照明强度(Indirect Lighting Intensity) ,或尝试使用较暗的环境。
五、材质设置
1、材质属性
你可以使用下面列出的混合模式和着色模型来投射彩色半透明阴影。
- 混合模式: 半透明、累加、AlphaComposite或调制
- 着色模型: 默认光照、无光照或薄半透明
若使用 调制(Modulate) 混合模式,需要在细节面板(Details Panel)属性中禁用 移动单独半透明度(Mobile Separate Translucency) 。
2、双面
启用 双面(Two Sided) 属性是可选项,但如果你希望玩家使用材质查看网格体的两面,则必须启用该属性。 如果禁用了 双面(Two Sided),则必须将光源投射到材质的可见面才能投射彩色阴影。
3、创建光照半透明材质
(1)创建新的 材质 资产,并在材质编辑器中打开它。点击材质图表(Material Graph)中的任意位置以便在细节面板(Details Panel)中显示材质属性。
(2)在细节面板(Details Panel)中,将 混合模式(Blend Mode) 更改为 半透明(Translucent) 。
(3)启用 双面(Two Sided) 材质属性(可选)。
(4)向下滚动并展开 半透明(Translucency) 分段。 将 光照模式(Lighting Model) 设为 表面半透明体积(Surface Translucency Volume) 。
(5)将 纹理样本(Texture Sample) 添加到材质图表(Material Graph)。此示例使用彩色几何图案模拟彩色玻璃窗,但任何彩色纹理都可行。 与饱和度低的图像相比,颜色饱和度高的图像生成的阴影更鲜艳。将纹理样本(Texture Sample)的 RGB 输出连接到主材质节点上的 基础颜色(Base Color) 输入。
(6)创建 标量参数(Scalar Parameter) ,并将其重命名为 不透明度(Opacity) 。选择标量参数(Scalar Parameter)并在细节面板(Details Panel)中将 默认值(Default Value) 设置为0到1之间的值。你还可以将 滑块最大值(Slider Max) 设置为 1 ,限制不透明度的值范围。
(7)将标量参数连接到 不透明度(Opacity) 输入。 你的材质图表看起来应该类似于下图。
(8)点击工具栏中的 应用(Apply) 和 保存(Save) 可编辑材质并保存资产。
六、构建光照
关闭材质编辑器并将材质应用到关卡中的静态网格体。此示例使用来自虚幻引擎初学者内容包的简单平面。定向光源的角度大致垂直于平面,因此阴影将直接落到下面的地面。
在工具栏中,前往 构建(Build) > 仅限构建光照(Build Lighting Only) 。 当Lightmass构建完成时,应该会出现彩色半透明阴影。
阴影锐度
有几个因素会影响阴影的锐度,包括接收透射阴影颜色的网格体的光照贴图分辨率、光源的源角度以及纹理样本的质量。如果你的结果像下图一样模糊且不聚焦,则很可能是接收网格体上的光照贴图分辨率太低。
选择阴影落在其上的静态网格体,在本例中为地板(Floor)资产。 在细节面板(Details Panel)中,向下滚动到 光照(Lighting) 分段。启用 已覆盖光照贴图分辨率(Overriden Light Map Res) 设置,输入新的光照贴图分辨率。
根据静态网格体的大小,可能需要相对较大的分辨率你才能看到清晰的阴影。
材质的不透明度值会影响阴影的饱和度和强度。 在这样的户外环境中,使用较高的不透明度值,更容易看到彩色阴影。然而,在昏暗室内,不透明度值较低可能会产生更好的效果。
遮罩不透明度
投射彩色半透明阴影时,不透明遮罩将正常运转。 你可以使用纹理的Alpha通道,或将黑白纹理插入 不透明度(Opacity) 输入,以便控制材质的哪些部分可见并投射阴影。 如果你不熟悉该过程,请在此处阅读有关纹理遮罩的更多信息。
下面的示例展示了投射彩色半透明阴影的遮罩材质。没有更改材质属性,但修改了材质图表,如下所示。
并非将 不透明度(Opacity) 标量参数直接插入主材质节点,而是增加黑白纹理样本。 遮罩的黑色区域是透明的,而白色圆形区域是可见的。
这是光照重建后的效果。