Abs(絕對值)
Abs(絕對值)是數學術語“絕對值(absolute value)”的縮寫。Abs(絕對值)表達式輸出其接收到的輸入的絕對值(無符號值)。基本上,這意味着它通過刪除減號將負數轉換爲正數,而正數和零將保持不變。
示例:-0.7 的 Abs(絕對值)爲 0.7;-1.0 的 Abs(絕對值)爲 1.0;1.0 的 Abs(絕對值)也是 1.0
用法示例:Abs(絕對值)一般與 DotProduct(標量積) 配合使用。DotProduct(標量積)的結果是 -1..0..1,對 DotProduct(標量積)的結果執行 Abs(絕對值)的結果將是 1..0..1。
Add(加)
Add(加)表達式接收兩個輸入,將其相加,然後輸出結果。這個加法運算按通道執行,這意味着輸入的 R 通道、G 通道和 B 通道等等將分別相加。兩個輸入必須具有相同數目的通道,除非其中之一是單個常量值。常量可以添加到具有任意數目輸入的矢量。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
接收被加數的值。僅當未使用 A 輸入時才使用。 |
常量 B(Const B) |
接收加數的值。僅當未使用 B 輸入時才使用。 |
輸入 |
|
A |
接收被加數的值。 |
B |
接收加數的值。 |
示例:對 0.2 和 0.4 執行 Add(加)的結果是 0.6;對 (0.2,-0.4,0.6) 和 (0.1,0.5,1.0) 執行 Add(加)的結果是 (0.3,0.1,1.6);對 (0.2,-0.4,0.6) 和 1.0 執行 Add(加)的結果是 (1.2,0.6,1.6)
用法示例:Add(加)通常用來使顏色變亮/變暗,或者使 UV 紋理座標偏移。
AppendVector(追加矢量)
AppendVector(追加矢量)表達式允許您將通道組合在一起,以創建通道數比原始矢量更多的矢量。例如,您可以使用兩個 常量 值並進行追加,以建立雙通道 Constant2Vector(常量 2 矢量) 值。這有助於將單個紋理中的通道重新排序,或者將多個灰階紋理組合成一個 RGB 彩色紋理。
項目 |
說明 |
---|---|
輸入 |
|
A |
接收作爲追加目標的值。 |
B |
接收要追加的值。 |
示例:對 0.2 和 0.4 執行追加的結果是 (0.2,0.4);對 (0.2,0.4) 和 (1.6) 執行追加的結果是 (0.2,0.4,1.6)。
Ceil(加一取整)
Ceil(加一取整)表達式接收值,使其 向上 舍入到下一個整數,並輸出結果。另請參閱 Floor(減一取整) 和 Frac(小數) 。
示例:對 0.2 執行 Ceil(加一取整)的結果是 1.0;對 (0.2,1.6) 執行 Ceil(加一取整)的結果是 (1.0,2.0)。
Clamp(限制)
Clamp(限制)表達式接收值,並將它們約束到由最小值和最大值定義的指定範圍。最小值 0.0 和最大值 0.5 意味着結果值決不會小於 0.0,並且決不會大於 0.5。
項目 |
說明 |
---|---|
屬性 |
|
限制模式(Clamp Mode) |
選擇要使用的限制類型。CMODE_Clamp 將對範圍的兩端進行限制。CMODE_ClampMin 和 CMODE_ClampMax 將僅對範圍的相應端進行限制。 |
默認最小值(Min Default) |
接收限制時用作最小值的值。僅當未使用“最小值”(Min)輸入時才使用。 |
默認最大值(Max Default) |
接收限制時用作最大值的值。僅當未使用“最大值”(Max)輸入時才使用。 |
輸入 |
|
最小值(Min) |
接收限制時用作最小值的值。 |
最大值(Max) |
接收限制時用作最大值的值。 |
示例:在最小值爲 0.0 且最大值爲 1.0 的情況下對 0.3 進行限制將產生 0.3;在最小值爲 0.0 且最大值爲 1.0 的情況下對 1.3 進行限制將產生 1.0;
ComponentMask(分量蒙版)
ComponentMask(分量蒙版)表達式允許從輸入中選擇通道(R、G、B 和/或 A)的特定子集以傳遞到輸出。嘗試傳遞輸入中不存在的通道將導致錯誤,除非輸入是單個常量值。在這種情況下,會將單個值傳遞到每個通道。選擇傳遞的當前通道將顯示在表達式的標題欄中。
項目 |
說明 |
---|---|
屬性 |
|
R |
如果選中此項目,那麼會將輸入值的紅色通道(第一個通道)傳遞到輸出。 |
G |
如果選中此項目,那麼會將輸入值的綠色通道(第二個通道)傳遞到輸出。 |
B |
如果選中此項目,那麼會將輸入值的藍色通道(第三個通道)傳遞到輸出。 |
A |
如果選中此項目,那麼會將輸入值的阿爾法通道(第四個通道)傳遞到輸出。 |
示例:如果 ComponentMask(分量蒙版)的輸入爲 (0.2,0.8,1.4) 並選中 R 和 B 通道,那麼將輸出 (0.2,1.4)。
Cosine(餘弦)
Cosine(餘弦)表達式反覆輸出 [0, 1] 範圍內的餘弦波值。最常見的情況是,通過將 Time(時間) 表達式連接至它的輸入,輸出連續的振盪波形。輸出值將在 -1 與 1 之間來回循環。下圖顯示波的視覺表示:
項目 |
說明 |
---|---|
屬性 |
|
週期(Period) |
指定產生的波的週期。換而言之,這是發生一次振盪的長度。 |
用法示例:在任何需要振盪效果的場合,此表達式都非常有用。通過將時間輸入(速度)或輸出(振幅)倍增,可以輕鬆地動態控制振盪的速度和振幅。
在以上示例中,顏色將以餘弦頻率振盪。
CrossProduct(矢量積)
CrossProduct(矢量積)表達式計算兩個三通道矢量值輸入的矢量積,並輸出所產生的三通道矢量值。給定空間中的兩個矢量,矢量積是與兩個輸入都垂直的矢量。
項目 |
說明 |
---|---|
輸入 |
|
A |
接收三通道矢量值。 |
B |
接收三通道矢量值。 |
用法示例:CrossProduct(矢量積)通常用來計算與另外兩個方向都垂直的方向。
Divide(除)
Divide(除)表達式接收兩個輸入,並輸出第一個輸入除以第二個輸入的結果。除法按通道進行,即,第一個輸入的 R 通道將除以第二個輸入的 R 通道,第一個輸入的 G 通道將除以第二個輸入的 G 通道,依此類推。除非除數是單個浮點值,否則兩個輸入必須具有相同數目的值。切勿以零作除數。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
接收被除數的值。僅當未使用 A 輸入時才使用。 |
常量 B(Const B) |
接收除數的值。僅當未使用 B 輸入時才使用。 |
輸入 |
|
A |
接收被除數的值。 |
B |
接收除數的值。 |
示例:當 A=(1.0,0.5,-0.4) 且 B=(2.0,2.0,4.0) 時,Divide(除)的輸出爲 (0.5,0.25,-0.1)
DotProduct(標量積)
DotProduct(標量積)表達式計算標量積,即一個矢量投射到另一個矢量上的長度。許多技術使用此計算來計算衰減。DotProduct(標量積)要求兩個矢量輸入具有相同數目的通道。
項目 |
說明 |
---|---|
輸入 |
|
A |
接收一個值,或接收任意長度的矢量。 |
B |
接收一個值,或接收任意長度的矢量。 |
Floor(減一取整)
Floor(減一取整)表達式接收值,使其 向下 舍入到上一個整數,並輸出結果。另請參閱 Ceil(加一取整) 和 Frac(小數) 。
示例:對 0.2 執行 Floor(減一取整)的結果是 0.0;對 (0.2,1.6) 執行 Floor(減一取整)的結果是 (0.0,1.0)。
FMod(浮點餘數)
FMod(浮點餘數)表達式返回對兩個輸入執行除法運算的浮點餘數。
在此示例中,FMod(浮點餘數)每秒返回一個重複值,該值的範圍限制在 0 到 1。達到 1 之後,該值將恢復爲 0,並無窮反覆。
Frac(小數)
Frac(小數)表達式接收值,並輸出這些值的小數部分。另請參閱 Ceil(加一取整) 和 Floor(減一取整) 。
示例:對 0.2 執行 Frac(小數)的結果是 0.2;對 (0.0,1.6) 執行 Frac(小數)的結果是 (0.0,0.6)。
在此示例中,Frac(小數)節點將時間轉換爲重複的 0 - 1 級數序列,從而通過線性插值使顏色從綠色漸變爲紅色,然後恢復爲綠色,並無窮反覆。
If(如果)
If(如果)表達式對兩個輸入進行比較,然後根據比較結果傳遞另外三個輸入值中的一個。所比較的兩個輸入必須都是單個浮點值。
項目 |
說明 |
---|---|
輸入 |
|
A |
接收單個浮點值。 |
B |
接收單個浮點值。 |
A > B |
接收 A 的值大於 B 的值時要輸出的值。 |
A = B |
接收 A 的值等於 B 的值時要輸出的值。 |
A < B |
接收 A 的值小於 B 的值時要輸出的值。 |
在此示例中,If(如果)表達式接收高度貼圖,並根據高度是低於還是高於值 0.2 來輸出紅色或綠色。
LinearInterpolate(線性插值)
LinearInterpolate(線性插值)表達式根據用作蒙版的第三個輸入值,在兩個輸入值之間進行混合。您可以將其想像成用於定義兩個紋理之間的過渡效果的蒙版,例如 Photoshop 中的層蒙版。蒙版“阿爾法”(Alpha)的強度確定從兩個輸入值獲取顏色的比例。如果“阿爾法”(Alpha)爲 0.0/黑色,那麼將使用第一個輸入。如果“阿爾法”(Alpha)爲 1.0/白色,那麼將使用第二個輸入。如果“阿爾法”(Alpha)爲灰色(介於 0.0 與 1.0 之間的值),那麼輸出是兩個輸入之間的混合。請記住,混合按通道進行。因此,如果“阿爾法”(Alpha)爲 RGB 顏色,那麼“阿爾法”(Alpha)的紅色通道值定義 A 與 B 的紅色通道之間的混合,而與“阿爾法”(Alpha)的綠色通道 無關,該通道定義 A 與 B 的綠色通道之間的混合。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
映射到黑色 (0.0) 的值。僅當未連接 A 輸入時才使用。 |
常量 B(Const B) |
映射到白色 (1.0) 的值。僅當未連接 B 輸入時才使用。 |
常量阿爾法(Const Alpha) |
接收要用作蒙版阿爾法的值。僅當未連接“阿爾法”(Alpha)輸入時才使用。 |
輸入 |
|
A |
接收映射到黑色 (0.0) 的值。 |
B |
接收映射到白色 (1.0) 的值。 |
阿爾法(Alpha) |
接收要用作蒙版阿爾法的值。 |
程序員需知:LinearInterpolate(線性插值)根據參數值“阿爾法”(Alpha)在 A 與 B 之間執行按通道插值。
Max(最大值)
Max(最大值)表達式接收兩個輸入,然後輸出其中的較大者。
此節點類似於 Photoshop 的“變亮”。
在以上示例中,A 爲 "0",B 爲 "1";因此,產生的底色爲 "1"(白色)。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
接收第一個值。僅當未使用 A 輸入時才使用。 |
常量 B(Const B) |
接收第二個值。僅當未使用 B 輸入時才使用。 |
輸入 |
|
A |
接收要比較的第一個值。 |
B |
接收要比較的第二個值。 |
Min(最小值)
Min(最小值)表達式接收兩個輸入,然後輸出其中的較小者。
此節點類似於 Photoshop 的“變暗”。
在以上示例中,A 爲 "0",B 爲 "1";因此,產生的底色爲 "0"(黑色)。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
接收第一個值。僅當未使用 A 輸入時才使用。 |
常量 B(Const B) |
接收第二個值。僅當未使用 B 輸入時才使用。 |
輸入 |
|
A |
接收要比較的第一個值。 |
B |
接收要比較的第二個值。 |
Multiply(乘)
Multiply(乘)表達式接收兩個輸入,將其相乘,然後輸出結果。類似於 Photoshop 的多層混合。乘法按通道進行,即,第一個輸入的 R 通道將乘以第二個輸入的 R 通道,第一個輸入的 G 通道將乘以第二個輸入的 G 通道,依此類推。除非其中一個值是單個浮點值,否則兩個輸入必須具有相同數目的值。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
接收第一個要相乘的值。僅當未使用 A 輸入時才使用。 |
常量 B(Const B) |
接收第二個要相乘的值。僅當未使用 B 輸入時才使用。 |
輸入 |
|
A |
接收第一個要相乘的值。 |
B |
接收第二個要相乘的值。 |
請注意,UE4 中的材質不限於 [0,1]。如果顏色/值大於 1,那麼 Multiply(乘)實際上會使顏色變亮。
示例:對 0.4 和 0.5 執行 Multiply(乘)的結果是 0.2;對 (0.2,-0.4,0.6) 和 (0.0,2.0,1.0) 執行 Multiply(乘)的結果是 (0.0,-0.8,0.6);對 (0.2,-0.4,0.6) 和 0.5 執行 Multiply(乘)的結果是 (0.1,-0.2,0.3)。
用法示例:Multiply(乘)通常用來使顏色/紋理變亮或變暗。
Normalize(規範化)
Normalize(規範化)表達式計算並輸出其輸入的規範化值。這表示該輸入的每個分量都會除以矢量的 L-2 範數(長度)。
OneMinus(一減)
OneMinus(一減)表達式接收一個輸入值,並輸出“一減去該值”。此運算按通道執行。
示例:對 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(一減)將返回互補色,這種顏色與輸入相加將產生白色。
Power(冪)
Power(冪)表達式接收兩個輸入,計算“底數”(Base)的“指數”(Exp)次冪,並輸出結果;換而言之,“底數”(Base)自乘“指數”(Exp)次。
項目 |
說明 |
---|---|
屬性 |
|
常量指數(Const Exponent) |
接收指數值。僅當未使用“指數”(Exp)輸入時才使用。 |
輸入 |
|
底數(Base) |
接收底數值。 |
指數(Exp) |
接收指數值。 |
示例:底數爲 0.5,指數爲 2.0 時,Power(冪)的結果爲 0.25。
用法示例:如果傳遞到 Power(冪)的顏色在 [0,1] 範圍內,那麼 Power(冪)可以用作對比度調整,即,僅保留較亮的值。
Sine(正弦)
Sine(正弦)表達式反覆輸出 [0, 1] 範圍內的正弦波值。最常見的情況是,通過將 Time(時間) 表達式連接至它的輸入,輸出連續的振盪波形。輸出值將在 -1 與 1 之間來回循環。此表達式與 Cosine(餘弦) 表達式輸出之間的差別是,輸出波形偏移半個週期。下圖顯示波的視覺表示:
項目 |
說明 |
---|---|
屬性 |
|
週期(Period) |
指定產生的波的週期。換而言之,這是發生一次振盪的長度。 |
用法示例:在任何需要振盪效果的場合,此表達式都非常有用。通過將時間輸入(速度)或輸出(振幅)倍增,可以輕鬆地動態控制振盪的速度和振幅。
SquareRoot(平方根)
SquareRoot(平方根)表達式輸出輸入值的平方根。SquareRoot(平方根)只能對單個浮點輸入值執行運算。
Subtract(減)
Subtract(減)節點接收兩個輸入,從第一個輸入中減去第二個輸入,然後輸出它們的差。減法按通道進行,即,第一個輸入的 R 通道將減去第二個輸入的 R 通道,第一個輸入的 G 通道將減去第二個輸入的 G 通道,依此類推。除非第二個輸入是單個常量值,否則兩個輸入必須具有相同數目的通道。常量可以從具有任意數目輸入的矢量中減去。
項目 |
說明 |
---|---|
屬性 |
|
常量 A(Const A) |
接收被減數的值。僅當未使用 A 輸入時才使用。 |
常量 B(Const B) |
接收減數的值。僅當未使用 B 輸入時才使用。 |
輸入 |
|
A |
接收被減數的值。 |
B |
接收減數的值。 |
示例:對 0.5 和 0.2 執行 Subtract(減)的結果是 0.3;對 (0.2,-0.4,0.6) 和 (0.1,0.1,1.0) 執行 Subtract(減)的結果是 (0.1,-0.5,-0.4);對 (0.2,0.4,1.0) 和 0.2 執行 Subtract(減)的結果是 (0.0,0.2,0.8)。
用法示例:Subtract(減)可用來使顏色變暗以及使 UV 偏移。