材质函数
原理:需要重复使用一组节点的功能或者计算,将其预先打包,以方便在本材质或其他材质内重复调用,保证了界面的简洁和可读性。
引擎自带的材质函数
控制板下选择 函数类型(functions)。节点颜色蓝色。双击可查看其内部节点构成。
创建材质函数案例
制作一个在Z轴上融合材质的效果。
思路:普通混合利用lerp节点。这里需要的Lerp中的Alpha是物体表面顶点法线在Z轴向上的信息,并可以控制该信息,方便材质实例化时调节。
1.在项目浏览器中创建,并以MF_开头命名。
2.
VertexNormalWS获取对象在世界空间中的顶点法线信息,使用分量蒙版(ComponentMask)获取其B(对应Z轴)通道信息。
使用幂函数(Power)信息放大,将其参数化并命名方便后期材质参数调整。加入Multiply函数做整体强度调整。
加入限制函数(Clamp)将其最大最小范围进行限定。否则出现数值过曝。
过曝
添加入Clamp节点
不再过曝
3.材质函数的调用:一、直接冲内容浏览器中拖入。 二、将其设置为 库中显示 ,即可通过右键添加该函数。
调用材质函数,之前的参数化使得调节alpha变得容易。
4.注意物体旋转后,物体顶点位置变化,它的材质也会变化。但始终是以顶点法线在Z轴方向为依据。
材质函数添加输入输出
将需要作为输入的调用Input in节点,选择其输入类型。
添加输出:调用Output函数。
材质图层(分层材质)
原理:其实就是材质的嵌套,可以将分层材质想像成“材质内的材质”。把整个材质做成一个可以调用的节点。本质也是材质函数
仍然使用上方草地木头材质,将其优化。把每个材质做成分层材质。
原始
1、调用Make Material Attributes(建立材质属性)节点。
2、调用新建的分层材质。材质的混合使用BlendMaterialAttribute节点(功能类似Lerp)。 改变材质结果节点