1、Abs(绝对值)
Abs 是数学术语“绝对值(absolute value)”的缩写。Abs表达式输出它接收到的输入的绝对值或无符号值。本质上,这意味着它通过去掉负号把负数变成正数,而正数和零保持不变。
2、Add(加)
Add 接受两个输入,将它们相加并输出结果。 如果使用多个通道传递值,每个通道将分别相加。两个输入必须有相同数量的值,但其中一个值是单个常量值时例外。在这种情况下,将多通道输入的每个通道相加单个浮点值,并将结果存储在输出值的单独通道中。
如:
0.2 Add 0.4 = 0.6;
(0.2,-0.4,0.6) Add (0.1,0.5,1.0) = (0.3,0.1,1.6);
(0.2,-0.4,0.6) Add 1.0 = (1.2,0.6,1.6)。
3、AppendVector(追加矢量)
AppendVector(追加矢量) 允许将通道组合在一起,以创建通道数比原始矢量更多的矢量。
例如,可以使用两个 Constant 值并进行追加,以建立双通道 Constant2Vector 值。这有助于将单个纹理中的通道重新排序,或者将多个灰阶纹理组合成一个 RGB 彩色纹理。
0.2 AppendVector 0.4 = (0.2,0.4);
(0.2,0.4) AppendVector (1.0) = (0.2,0.4,1.0)。
4、Ceil(向上取整)
Ceil 表达式接受值,向上取整,并输出结果。
如:
0.2 向上取整结果为 1.0;
(0.2,1.6) 向上取整结果为 (1.0,2.0)。
5、Clamp(限制)
Clamp 表达式接受一个或多个值,并将它们约束到由最小值和最大值定义的指定范围内。如果最小值为0.0,最大值为0.5,则意味着结果值永远不会小于0.0,且永远不会大于0.5。
| 属性 | 说明 |
|---|---|
| Clamp Mode(限制模式) | 选择要使用的限制类型。CMODE_Clamp将限制范围的两端。CMODE_ClampMin和CMODE_ClampMax将仅限制范围与其相应的一端。 |
| Min Default(默认最小值) | 接受限制时要用作最小值的值。仅在未使用 Min(最小值)输入时使用。 |
| Max Default(默认最大值) | 接受限制时要用作最大值的值。仅在未使用Max(最大值)输入时使用。 |
6、ComponentMask(分量蒙版)
ComponentMask(分量蒙版) 表达式允许从输入中选择通道(R、G、B 和/或 A)的特定子集以传递到输出。尝试传递输入中不存在的通道将导致错误,除非输入是单个常量值。在这种情况下,会将单个值传递到每个通道。选择传递的当前通道将显示在表达式的标题栏中。
7、Cosine(余弦)
Cosine 表达式在[0, 1]的输入范围和[-1, 1]的输出范围上反复输出余弦波的值。此表达式最常用于通过将一个时间表达式与其输入连接来输出连续的振荡波形,但它也可以用于在世界场景空间或屏幕空间或任何其他需要连续、平滑循环的应用中创建波纹。波形的可视化表示如下图所示,缩放到[0, 1]输出范围:
| 属性 | 说明 |
|---|---|
| Period(周期) | 指定合成波的周期。换句话说,这是发生一个完整的振荡所需要的时间,或者波形中每个连续波峰或连续波谷之间的间隔时间。例如,上图中,周期为一秒。 |
8、CrossProduct(矢量积)
CrossProduct 计算两个三通道矢量值输入的交叉乘积,并输出产生的三通道矢量值。假定空间中有两个矢量,则交叉乘积是一个同时垂直于两个输入的矢量。
9、Divide(除)
Divide 表达式取两个输入,将第一个输入除以第二个输入,并输出值。
如果使用多个通道传递值,每个通道将单独相除。两个输入必须有相同数量的值,但其中一个值是单个浮点值时例外。在这种情况下,将多通道输入的每个通道除以单个浮点值,并将结果存储在输出值的单独通道中。
如果除数在任何通道内都介于0和0.00001之间,则将其提升至0.00001。如果除数在任何通道内都介于0和-0.00001之间,则将其降低至-0.00001。这避免了出现除以零的错误可能性。但是,这也意味着通道的输出值可能非常大。
10、DotProduct(点积)
DotProduct 表达式计算点积,点积可以描述为一个矢量投影到另一个矢量上的长度,也可以描述为两个矢量之间的余弦乘以它们的幅值。许多技术使用这种算法来计算衰减。DotProduct要求两个矢量输入具有相同数量的通道。
| 输入 | 说明 |
|---|---|
| A | 接受一个值或任意长度的矢量。 |
| B | 接受一个值或具有与 A 相同长度的矢量。 |
11、Floor(向下取整)
Floor 表达式接受值,向下取整,并输出结果。
如:
0.2 向上取整结果为 0.0;
(0.2,1.6) 向上取整结果为 (0.0,1.0)。
12、Fmod(浮点余数)
Fmod 表达式返回两个输入的除法运算的浮点余数。被除数(输入“A”)可以是任何值,但负被除数将导致负结果。除数(第二个输入)不应为零,因为这意味着要除以零,但是除数是负数还是正数并不会影响结果。它的常见的用例是制作一种材质,使其亮度上升到最大值,然后在下一帧中立即下降到最小值,然后再次开始向最大值攀升。
在本例中,FMod采用0到1的UV级数,并将其转换为绿色通道中X轴上每0.2个UV单元一次的重复循环。
13、Frac(小数)
Frac 表达式接受值并输出这些值的小数部分。换句话说,对于输入值“X”,结果是“X - X的整数部分”。输出值将从0到1不等,包括下限值,但不包括上限值。
如:
(0.2)的小数部分是(0.2)。
(-0.2)的小数部分是(0.8)。
(0.0,1.6,1.0)的小数部分是(0.0,0.6,0.0)。
14、If
If 表达式比较两个输入。
| 输入 | 说明 |
|---|---|
| A | 接受单个浮点值。 |
| B | 接受单个浮点值。 |
| A > B | 接受如果A大于B时要输出的值。 |
| A == B | 接受如果A等于B时要输出的值。 |
| A < B | 接受如果A小于B时要输出的值。 |
在本例中,If表达式接受一个高度图,并根据高度是低于还是高于0.2的值来输出红色或绿色。
15、LinearInterpolate(线性插值)
LinearInterpolate(线性插值) 表达式根据用作蒙版的第三个输入值,在两个输入值之间进行混合。可以将其想像成用于定义两个纹理之间的过渡效果的蒙版,例如Photoshop中的层蒙版。蒙版Alpha的强度确定从两个输入值获取颜色的比例。如果Alpha为0.0色,那么将使用第一个输入。如果Alpha为1.0,那么将使用第二个输入。如果Alpha介于0.0与1.0之间,那么输出是两个输入之间的混合。请记住,混合按通道进行。因此,如果Alpha为RGB颜色,那么Alpha的红色通道值定义A与B的红色通道之间的混合,Alpha的绿色通道值定义A与B的绿色通道之间的混合。
| 属性 | 说明 |
|---|---|
| Const A(常量 A) | 映射到0.0的值。仅当未连接A输入时才使用。 |
| Const B(常量B) | 映射到1.0的值。仅当未连接B输入时才使用。 |
| Const Alpha(常量Alpha) | 接收要用作蒙版alpha的值。仅当未连接Alpha输入时才使用。 |
| 输入 | 说明 |
|---|---|
| A | 接收映射到0.0的值。 |
| B | 接收映射到1.0的值。 |
| Alpha | 接收要用作蒙版alpha的值。 |
程序员需知:LinearInterpolate根据参数值Alpha在A与B之间执行按通道插值。
16、Multiply(乘)
Multiply(乘) 表达式接受两个输入,将它们相乘,然后输出结果。当将颜色值作为输入传递时,结果类似于Photoshop中的 正片叠底 图层混合模式的结果。
如果使用多个通道传递值,每个通道将分别相乘。两个输入必须有相同数量的值,但其中一个值是单个浮点值时例外。在这种情况下,将多通道输入的每个通道乘以单个浮点值,并将结果存储在输出值的单独通道中。
如:
0.4 Multiply 0.5 = 0.2;
(0.2,-0.4,0.6) Multiply (0.0,2.0,1.0) = (0.0,-0.8,0.6);
(0.2,-0.4,0.6) Multiply 0.5相 = (0.1,-0.2,0.3)。
示例:Multiply常用于使颜色/纹理变亮或变暗。
17、Normalize(归一化)
Normalize(归一化) 表达式计算并输出其输入的归一化值。归一化矢量(也称“单位矢量”)的整体长度为1.0。这意味着输入的每个分量都除以矢量的总大小(长度)。
示例:通过Normalize传递(0,2,0)或(0,0.2,0)都将输出(0,1,0)。通过Normalize传递(0,1,-1)将输出(0, 0.707, -0.707)。全零矢量是唯一的例外,它不会改变。
| Normalized | Non-Normalized |
|---|---|
没有必要对插入到法线材质输出中的表达式进行归一化。
18、OneMinus(一 减)
OneMinus 表达式接受输入值“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)。
示例:当输入的颜色在[0,1]范围内时,OneMinus的效果与我们通常所说的“反色”是一样的,也就是说,OneMinus返回的是添加到输入时会产生白色的互补色。
19、Power(幂)
Power(幂) 表达式接收两个输入:Base(基值)和Exp(指数)。它将基值提高到指数的幂,并输出结果。换句话说,它返回 Base 乘以自身 Exp 次。
示例:如果您传递给Power的颜色在[0,1]范围内,Power可以作为一种对比度调整,其中非常亮的值会略微降低,但是较暗的值会急剧下降。
20、Round(四舍五入)
Round 表达式将输入值四舍五入。
21、Saturate(饱和)
Saturate 与 Clamp 类似。Saturate 将值限定在0与1之间。
22、Sign(符号)
Sign 表达式:
- 如果输入为负数,该节点输出-1。
- 如果输入恰好为0,该节点输出0。
- 如果输入为正数,该节点输出1。
23、Sine(正弦)
Sine(正弦) 表达式在[0, 1]的输入范围和[-1, 1]的输出范围上反复输出正弦波的值。它与Cosine表达式的输出之间的区别是输出波形被四分之一的周期所抵消,这意味着“Cos(X)”等于“Sin(X + 0.25)”。此表达式最常用于通过将一个时间表达式与其输入连接来输出连续的振荡波形,但它也可以用于在世界场景空间或屏幕空间或任何其他需要连续、平滑循环的应用中创建波纹。波形的可视化表示如下图所示,缩放到[0, 1]输出范围:
| 属性 | 说明 |
|---|---|
| Period(周期) | 指定合成波的周期。换句话说,这是发生一个完整的振荡所需要的时间,或者波形中每个连续波峰或连续波谷之间的间隔时间。例如,上图中,周期为一秒。 |
24、SquareRoot(平方根)
SquareRoot(平方根) 表达式输出输入值的平方根。如果应用于矢量,则每个分量将分别处理。
25、Subtract(减)
Subtract 节点接受两个输入,将第一个输入减去第二个输入,然后输出差值。
如果使用多个通道传递值,每个通道将分别相减。两个输入必须有相同数量的值,但其中一个值是单个常量值时例外。在这种情况下,将多通道输入的每个通道减去常量值,并将结果存储在输出值的单独通道中。
如:
0.5 Subtract 0.2 = 0.3;
(0.2,-0.4,0.6) Subtract (0.1,0.1,1.0) = (0.1,-0.5,-0.4);
(0.2,0.4,1.0) Subtract 0.2 = (0.0,0.2,0.8)。
示例:Subtract可以用来加深颜色和偏移UV。