此篇是对 材质蓝图 中经常使用的 材质节点 进行的介绍。
纹理坐标:TextureCoordinate
点击节点,展示在细节面板的参数:
坐标索引:材质可以拥有不止一套UV通道,设置索引值使用通道。(0 第一个通道,1 第二个通道)
U平铺:指定 U 方向上的平铺量。
V平铺:指定 V 方向上的平铺量。
快捷键:U+鼠标左键
一:加、减、乘、除
1.加 Add
相关计算涉及到常量+常量,同维向量+同维向量,多维向量+常量。
(1)常量+常量:
0.6+0.4 结果为:1
(2)同维向量+同维向量:
(0.2,0.3,0.4)+(0.1,0.2,0.3)
结果为:(0.3,0.5,0.7)
解释:材质中每个通道分别相加,最后输出颜色值。
(3)多维向量+常量:
(0.2,0.2)+1 结果:(1.2,1.2)
(0.1,0.2,0.3)+1 结果:(1.1,1.2,1.3)
解释:常量1在材质中表现颜色是白色,白色中的RGBA值全是1,所以常量1转换成多维向量各通道值均为1.然后各通道值进行相加。
2.减 Subtract
原理与加一致,各通道的值进行减法计算,最后输出结果。
示例:0.5与0.2相减得0.3;(0.2,-0.4,0.6)与(0.1,0.1,1.0)相减得(0.1,-0.5,-0.4);(0.2,0.4,1.0)与0.2相减得(0.0,0.2,0.8)
3.乘 Multiply
原理与加一致,各通道的值进行乘法计算,最后输出结果。
示例:0.4与0.5相乘得0.2;(0.2,-0.4,0.6)与(0.0,2.0,1.0)相乘得(0.0,-0.8,0.6);(0.2,-0.4,0.6)与0.5相乘得(0.1,-0.2,0.3)。
注意:最后结果不局限于0-1之间,值大于1时,材质亮度会增加。
4.除 Divide
原理与加一致,各通道的值进行除法计算,最后输出结果。
二:分量蒙版、追加、乘方、贴图旋转、时间驱动、1-、正弦、余弦、常量偏差比例、坐标转换、限制、归一化、点积、线性插值
1.分量蒙版 ComponentMask
可以选择特定通道值进行输出。
上图中提取UV通道值,UV是二维矢量值,所以只有RG两个通道,R通道取得是UV中的U值,G通道取得是UV中的V值。想要输出R通道,就取消勾选G通道。
注意:勾选单个通道输出的是一维向量,勾选两个通道输出的是二维向量。
2.追加 AppendVector
将数值组成新的向量组。例如:A为常量0.2和B为常量0.4使用节点之后,输出结果为(0.2,,04)。
A为向量(0.2,0.4)和B为常量0.1使用节点之后,输出结果为(0.2,0.4,0.1)。
3.次方 Power
Base:基数,就是哪个数
Exp:乘方值,计算多少次方
含义:哪个数要进行多少次方,输出最终值。
4.旋转 CustomRotator
UVs:接受UV坐标值
RotationCenter:旋转中心点坐标值
RotationAngle:旋转角度(输入值会自动转化成0-360度,输入值1,经过节点转换对应的角度为360度)
5.时间驱动
随着时间旋转材质效果,由4、5两个节点完成,
参数:
忽略暂停:如果为true,时间将一直推进,不受游戏暂停的影响。在游戏运行过程中调用暂停命令,勾选此选项的材质会继续产生效果。
6.OneMinus 1- 节点
解释:接受输入值“X”并输出“1 - X”。此操作逐逐通道执行。
举例:0.4的OneMinus值为0.6;(0.2,0.5,1.0)的OneMinus值为(0.8,0.5,0.0);(0.0,-0.4,1.6)的OneMinus值为(1.0,1.4,-0.6)。
7.正弦、余弦
正弦:Sine
注意:不要拼错,是Sine 不是Sign
余弦:Cosine
数学中的正弦、余弦函数,这两个节点可以对输入值进行处理,将输出值控制在-1到1之间。
扩展:
sign节点功能是:
输入值如果为负数,输出值为-1。
输入值如果为0,输出值为0。
输入值如果为正数,输出值为1。
8.常量偏差比例 ConstantBiasScale
输出值为:输入值+1,乘以0.5。
9.坐标转换 搜索 Transform 选择 向量项中的节点名称
将三通道矢量值从一种参考坐标系转换到另一种参考坐标系。输入值是RGB通道的。
简单说 就是用于 空间转换 的节点。选择节点在细节面板可以设置由什么空间转换到什么空间。
10.限制节点Clamp
设置上最小值和最大值后,对输入值进行判断,如果在区间范围内则输出输入值,如果输入值小于Min的值,则返回Min值,如果输入值大于Max的值,则输出Max的值。
11.归一化 Normalize
该节点将输入向量,转换为单位向量。值压缩到(0~1)的范围内
12.点积 DotProduct
可以描述为一个矢量投影到另一个矢量上的长度,最后输出的是一个数。DotProduct要求两个矢量输入具有相同数量的通道。
13.线性插值 LinearInterpolate
根据Alpha的值将A、B两个值进行混合。
如果Alpha为0,那么将使用第一个输入。
如果Alpha为1,那么将使用第二个输入。
如果Alpha介于0.0与1.0之间,那么输出是两个输入之间的混合。
注意:混合按通道进行。Alpha的值要在0-1之间
三、移动、混合、法线强度调整、选择、世界空间顶点法线、菲尼尔、开启置换、深度节点
1.移动节点Panner
参数:
Coordinate接受传入的UV值,如果不连接,默认为ConstCoordinate。
Time:如果不连接,默认跟随游戏时间,一直进行偏移。设置固定值,计算出此值对应的偏移量进行显示,不进行动态变化。此值可以通过蓝图或者过场动画控制输入。
Speed:移动速度。此值为二维向量,分别对应RG通道,影响图片UV两个方向的移动速度。
2.混合 Blend_Overlay
对“底色”(Base)和“混合”(Blend)进行过滤或相乘混合。
Base基色值啊a,0 <= a <= 1, Blend混合色值b,0 <= b <= 1,ab进行混合,输出值分为两种情况:
1.a < 0.5时,输出值为:c = 2ab,0 <= c < 2b
2.a > 0.5时,输出值为:c = 2(1-b)a+(2b-1),2b < c < 1
官方示例:
3.法线强度调整 FlattenNormal
参数:
Normal:法线值
Flatness:平坦度
此节点是用来调节法线强度,经测试输入Flatness值在0-1之间时,值越大材质上的法线效果越平坦。
超过1或者小于0,法线效果会增强。
4.选择 StaticSwitch
参数:
Value:判断条件,用来控制输出值,此值是Bool值。
True:正确时输入的参数
False:错误时输入的参数
5.世界空间顶点法线 VertexNormalWS
此节点输出世界空间顶点法线,只能用于顶点着色器的材质输入,比如WorldPositionOffset。用于设置mesh的增长或收缩。
注意:默认情况下,材质的所有着色器计算都在切线空间中完成。
示例:
通过运算节点,使每个顶点在自己的法线方向上移动,球体看起来会随着正弦运动而缩放。
注意:最后输出连接的是世界场景位置偏移。
6.菲尼尔 Fresnel
菲涅尔公式计算的衰减基于标量乘积的表面法线和相机的方向。当曲面法线朝向摄像机时,输出值为0。当曲面法线垂直于摄像机时,输出值为1。结果限制在[0,1]范围内,以确保中心不产生负片色彩。
Exponentln:指定输出值衰减的速率。值越大,表示衰减越紧密或越快。
BaseReflectFractionln:从表面的方向查看表面时的镜面反射的强度。值越小反射越强,值为1将有效地禁用菲涅耳效应。菲尼尔效果为7.开启置换中第一个图的球体。
利用的是 模型顶点法线与相机法线
示例:玻璃材质制作
7.开启置换
在材质球蓝图编辑器中,点击空白处,细节面板找到曲面细分,修改曲面细分模式及无裂纹置换。
无裂纹置换:置换后不带接缝。
如果想要在此物体上有置换效果需要与世界空间法线顶点节点配合。
注意:结果与世界场景位移连接,
曲面细分乘数:控制表面上曲面细分数量,值越大效果越明显。
置换与法线贴图效果对比:
1.法线贴图是让物体看上去像有凹凸效果。置换是对模型进行了变形。
2.置换更消耗资源。
四、世界场景位置偏移和世界场景位移的区别
世界场景位置偏移:是允许通过材质在世界空间中操作网格体顶点。是对模型顶点进行的操作。
世界场景位移:允许材质在世界空间中操纵曲面细分顶点,是开启置换的操作。
8.深度节点 DepthFade
作用:用来隐藏半透明对象与不透明对象相交时出现的不美观接缝。
参数:
Opacity:接收深度消退前对象的现有不透明度。
FadeDistance:消退距离。
官方示例:
9.CameraVectorWS
表达式输出一个三信道矢量值,该值表示摄像机相对于表面的方向,即像素到摄像机的方向。
示例:
CameraVector通常通过将CameraVector连接到ComponentMask并使用CameraVector的x和y信道作为纹理坐标,来用于虚设环境贴图。
效果:物体表面看到的贴图随着相机移动发生变化。