咨询电话:400-810-1418服务与监督电话:400-810-1418转接2

UE4材质融合过渡应用案例教程

发布时间:2021-02-03 10:16:33

大家好,我是很久不见,主要从事的方向是引擎美术。本次和大家分享一个关于UE4材质融合过渡应用案例教程。先来看一下最终的效果展示:

1-1.gif1-2.gif1-3.gif

一、思路分析

我们通常在搭建场景时,难免会遇到两个物体有交叠的情况,此时两个物体会有如下的“硬接触”效果。

2.webp.jpg

这种效果难免过于生硬,一般低成本的解决方案是UE4官方文档中给出的,使用像素深度偏移(Pixel Depth Offset),将像素深度偏移与DitherTemporalAA材质函数结合使用,可以得到如下平滑过渡的效果。

3-1.webp.jpg3-2.webp.jpg

但是想要做更加复杂和自然的过渡效果,此处需要加入距离场。

二、融合材质的制作

引用官方解释:虚幻引擎4(Ue4)使用 距离场(Distance Fields) 的强大功能来实现游戏中静态网格体Actor的动态环境光遮蔽和阴影。除此之外,Actor的网格体距离场表达还可用于其他一些特性,例如GPU粒子碰撞,甚至还可以使用材质编辑器创建动态流动贴图等等。

此处我从Megascans新导入了一个岩石模型,并新建了一个关卡场景。在项目设置,渲染中,开启“生成网格体距离场”,此时为了便于观察效果,给材质球的自发光通道加入”DistanceToNearestSurface”,Position连接绝对世界位置,观察一下视图中的变化。

4-1.webp.jpg4-2.webp.jpg4-3.png

然后加入一张图作为Mask让过渡更加自然,此时将材质球转换为实例材质后,调节变量观察过渡效果。

5-1.png5-2.png5-3.png

如果显示效果不正确,可以在细节面板中关闭“影响距离场光照”。

6.png

加入地面部分的材质。

7.webp.jpg

再加入岩石部分的材质。

8.webp.jpg

此处“FlattenNormal”调节法线的强度,加入了“Switch Param”节点用来关闭和开启AO的使用。

现在断掉自发光的连接,将刚才的过渡效果作为Lerp的Alpha,然后观察一下效果。

9.webp.jpg9-2.png

三、加入绘制部分效果

10.png

此处为了让绘制过渡更自然,多做了一次Lerp,然后添加“Vertex Color”节点,用一个变量值控制绘制的整体效果,最后限制在0.001到1的范围内。

11.png

最后用一个Lerp整合之前的两次Lerp。此时就可以使用网格体绘制工具绘制材质过渡的效果了。

12.png12-2.png12-3.png

四、世界场景位置偏移

引用官方解释:世界位置偏移(World Position Offset) 输入允许网格体的顶点在世界空间中由材质操纵。这有助于实现使对象移动、改变形状、旋转和各种其他效果。这适用于环境动画之类的内容。

这里如果不使用曲面细分的话,推荐使用仅控制网格体顶点的世界场景位置偏移,同时也可以节约一部分消耗。

为了在岩石与地面的重叠处能有坡度变形,在材质上需要连接世界场景位置偏移。这里用绿通道配合绝对世界位置,将节点连接到世界场景位置偏移上。

13.webp.jpg

此时用网格体绘制工具绘制岩石的底布,并配合Offset的变量,可以有坡度过渡的效果出现。

14-1.webp.jpg14-2.webp.jpg14-3.webp.jpg

最后我们加上地面材质看一下效果。

15.png

以上就是本次教程案例的内容了,希望大家可以举一反三,将这种融合效果应用到其他的场景中。

来源:Thepoly公众号