Unreal4材质表达式向量运算表达式类节点讲解0017

向量运算式对矢量输入值执行运算的表达式。

AppendVector附加向量

该AppendVector表达式允许您把通道结合在一起来创建一个比原来多频道的载体。例如,您可以采用两个单独的Constants 值,并将它们附加以构成两个通道的Constant2Vector 值。这对于重新排列单个纹理中的通道或将多个灰度纹理组合为一个RGB颜色纹理很有用。示例:附加值0.2和0.4为(0.2,0.4);(0.2,0.4)和(1.0)的附加值为(0.2,0.4,1.0)。

ComponentMask组件蒙版

所述ComponentMask表达允许选择从所述输入通道(R,G,B,和/或A)的特定子集,以通过到输出端。尝试使输入中不存在的通道通过将导致错误,除非输入是单个常数值。在这种情况下,单个值将传递到每个通道。选择要传递的当前通道显示在表达式的标题栏中。

示例:输入为(0.2,0.4,1.0)且G通道为ComponentMask的输出为(0.4),当用作颜色矢量时,它将显示为40%的明亮灰度值。

CrossProduct交叉产品

该交叉积表达式计算两个三通道矢量值输入的叉积,并输出所得到的三信道向量的值。给定空间中的两个向量,叉积是一个垂直于两个输入的向量。

用法示例: CrossProduct通常用于计算与其他两个方向垂直的方向。

DeriveNormalZ

所述DeriveNormalZ表达式导出切空间的Z分量正常给出的X和Y分量,并输出所得到的三信道切线空间正常。Z计算为Z = sqrt(1-(x * x + y * y));

DotProduct点积

所述DotProduct表达式计算点积,它可以作为一个矢量的长度投影到其他,或作为两个矢量乘以其大小之间的余弦进行说明。许多技术都使用此计算来计算衰减。DotProduct要求两个矢量输入都具有相同数量的通道。

Normalize归一化

归一化表达计算并输出它的输入的归一化值。归一化向量(也称为“单位向量”)的总长度为1.0。这意味着输入的每个分量都除以矢量的总大小(长度)。

示例:通过(Normal)传递(0,2,0)或(0,0.2,0)将输出(0,1,0)。通过(0,1,-1)通过Normalize将输出(0,0.707,-0.707)。唯一的特殊情况是全零向量,它将保持不变。
不必对插入到“普通”材质输出中的表达式进行规格化。

Transform变形

变换从一个参考表达式转换的三信道矢量值坐标系到另一个。
默认情况下,材质中的所有着色器计算都是在切线空间中完成的。在将矢量常数,相机矢量,光矢量等用于材质之前,它们都已转换为切线空间。Transform表达式允许将这些向量从切线空间转换为世界空间,局部空间或视图空间坐标系。此外,它还允许将世界空间和局部空间向量转换为任何其他参考坐标系。



“变换”节点考虑了镜像UV,因此允许例如仅影响角色右边缘的突出显示。

“变换”节点对于生成用于采样立方体贴图的世界空间法线很有用。法线贴图可以转换为世界空间。下面是将法线转换为世界空间以便对立方体贴图进行采样的示例:

将法线转换为视图空间可用于创建边缘效果。这可以通过使用网格法线生成纹理坐标(通常称为“球体贴图”)来实现。使用此方法,直接面对相机的法线将映射到纹理坐标的中心,而垂直于相机的法线将映射在纹理坐标的边缘。这是“球体映射”的示例:

将值(0,0,1)的constant3向量馈入带有TRANSFORM_View集的Transform中,然后将其传递给ComponentMask(仅传递R和G)。由于“变换”将输出从-1到1的值范围,因此我们必须对这些值进行偏置以将它们置于0-1范围内。这是通过乘以0.5,然后再加上0.5来完成的。然后只需将其插入纹理的坐标即可。任何纹理都可以;我制作了一个带有三个戒指的戒指,这样效果很明显。
Snipaste_2021-03-06_14-47-59.png

要将此效果用于法线贴图,只需将Constant3Vector替换为法线贴图即可。

这是此球形贴图材料应用于斑点样岩石网格的示例:

由于插值器的限制,VertexColor与Transform节点互斥。 如果同时使用Transform节点和VertexColor,则VertexColor将全部变为白色。

变换节点当前无法正确处理非均匀缩放。

变换位置

当用于从原点派生世界pos时,由于主要的精度问题,不建议使用此节点!请改用WorldPosition节点。

所述TransformPosition表达式可以从屏幕空间变换的任何位置,以通过表达式的TransformType变量指定的目标空间。目前仅支持转换为世界空间。此表达式可用于获取材质中的世界空间坐标。要可视化世界位置,可以将其直接插入发射体中:

你可能感兴趣的:(Unreal4材质表达式向量运算表达式类节点讲解0017)