分层材质的应用十分广泛,经典的就是风景的制作:一个材质包括了泥土、草地、积雪。
下面的例子是 分层材质用于某个物体,使得其表层是油漆,内层是金属:
用一张纹理当做遮罩,来插值其他两张纹理的材质也是能得到相同的效果,但是功能模块高度耦合没法复用;所以 UE4 提供了另外一种方法——Material Function,它的创建方法:
在 Content / Materials 目录下,右键点击 Materials & Textures 选择 Material Function
打开的材质编辑器如图所示:
可以看到,它和我们之前所见的材质编辑器略有不同,视图中只有一个 Output Result 节点,没有我们熟悉的 base color、metalic 、roughness 输入 pin。
因此我们需要新建一个节点——在空白处右键搜索 “MakeMaterialAtrribute” 节点
这样我们就可以依照之前的方式来定义我们的材质了,例如定义一个浅灰色,并添加两个常量节点分别连接到 metalic(1.0) 和 roughness(0.25) 输入 pin 上;
然后我们再如法炮制另外一个 Material Functions
接着,我们新建一个材质,将它们两者结合起来:
需要注意的是,我们需要勾选 Use Material Atrributes
并使用 Material Layer Blend 类型的节点来连接 Material Functions,本例使用的是 MatLayerBlend_Simple
把材质设置到模型上,便可得到如下效果:
后续,我们还可以添加新的 Material Function 或 Material来获得更加复杂的结果:
(完)