(170)數學表達式

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。

AbsExample.png

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 紋理座標偏移。

AddExample.png

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)。

AppendVectorExample.png

Ceil(加一取整)

Ceil(加一取整)表達式接收值,使其 向上 舍入到下一個整數,並輸出結果。另請參閱 Floor(減一取整) 和 Frac(小數) 。

示例:對 0.2 執行 Ceil(加一取整)的結果是 1.0;對 (0.2,1.6) 執行 Ceil(加一取整)的結果是 (1.0,2.0)。

CeilExample.png

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;

ClampExample.png

ComponentMask(分量蒙版)

ComponentMask(分量蒙版)表達式允許從輸入中選擇通道(R、G、B 和/或 A)的特定子集以傳遞到輸出。嘗試傳遞輸入中不存在的通道將導致錯誤,除非輸入是單個常量值。在這種情況下,會將單個值傳遞到每個通道。選擇傳遞的當前通道將顯示在表達式的標題欄中。

項目

說明

屬性

R

如果選中此項目,那麼會將輸入值的紅色通道(第一個通道)傳遞到輸出。

G

如果選中此項目,那麼會將輸入值的綠色通道(第二個通道)傳遞到輸出。

B

如果選中此項目,那麼會將輸入值的藍色通道(第三個通道)傳遞到輸出。

A

如果選中此項目,那麼會將輸入值的阿爾法通道(第四個通道)傳遞到輸出。

示例:如果 ComponentMask(分量蒙版)的輸入爲 (0.2,0.8,1.4) 並選中 R 和 B 通道,那麼將輸出 (0.2,1.4)。

ComponentMaskExample.png

Cosine(餘弦)

Cosine(餘弦)表達式反覆輸出 [0, 1] 範圍內的餘弦波值。最常見的情況是,通過將 Time(時間) 表達式連接至它的輸入,輸出連續的振盪波形。輸出值將在 -1 與 1 之間來回循環。下圖顯示波的視覺表示:

CosineWave.png

項目

說明

屬性

週期(Period)

指定產生的波的週期。換而言之,這是發生一次振盪的長度。

用法示例:在任何需要振盪效果的場合,此表達式都非常有用。通過將時間輸入(速度)或輸出(振幅)倍增,可以輕鬆地動態控制振盪的速度和振幅。

CosineExample.png

在以上示例中,顏色將以餘弦頻率振盪。

CrossProduct(矢量積)

CrossProduct(矢量積)表達式計算兩個三通道矢量值輸入的矢量積,並輸出所產生的三通道矢量值。給定空間中的兩個矢量,矢量積是與兩個輸入都垂直的矢量。

項目

說明

輸入

A

接收三通道矢量值。

B

接收三通道矢量值。

用法示例:CrossProduct(矢量積)通常用來計算與另外兩個方向都垂直的方向。

CrossProductExample.png

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)

DivideExample.png

DotProduct(標量積)

DotProduct(標量積)表達式計算標量積,即一個矢量投射到另一個矢量上的長度。許多技術使用此計算來計算衰減。DotProduct(標量積)要求兩個矢量輸入具有相同數目的通道。

項目

說明

輸入

A

接收一個值,或接收任意長度的矢量。

B

接收一個值,或接收任意長度的矢量。

DotProductExample.png

Floor(減一取整)

Floor(減一取整)表達式接收值,使其 向下 舍入到上一個整數,並輸出結果。另請參閱 Ceil(加一取整) 和 Frac(小數) 。

示例:對 0.2 執行 Floor(減一取整)的結果是 0.0;對 (0.2,1.6) 執行 Floor(減一取整)的結果是 (0.0,1.0)。

FloorExample.png

FMod(浮點餘數)

FMod(浮點餘數)表達式返回對兩個輸入執行除法運算的浮點餘數。

FModExample.png

在此示例中,FMod(浮點餘數)每秒返回一個重複值,該值的範圍限制在 0 到 1。達到 1 之後,該值將恢復爲 0,並無窮反覆。

Frac(小數)

Frac(小數)表達式接收值,並輸出這些值的小數部分。另請參閱 Ceil(加一取整) 和 Floor(減一取整) 。

示例:對 0.2 執行 Frac(小數)的結果是 0.2;對 (0.0,1.6) 執行 Frac(小數)的結果是 (0.0,0.6)。

FracExample.png

在此示例中,Frac(小數)節點將時間轉換爲重複的 0 - 1 級數序列,從而通過線性插值使顏色從綠色漸變爲紅色,然後恢復爲綠色,並無窮反覆。

If(如果)

If(如果)表達式對兩個輸入進行比較,然後根據比較結果傳遞另外三個輸入值中的一個。所比較的兩個輸入必須都是單個浮點值。

項目

說明

輸入

A

接收單個浮點值。

B

接收單個浮點值。

A > B

接收 A 的值大於 B 的值時要輸出的值。

A = B

接收 A 的值等於 B 的值時要輸出的值。

A < B

接收 A 的值小於 B 的值時要輸出的值。

IfExample.png

在此示例中,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 之間執行按通道插值。

LerpExample.png

Max(最大值)

Max(最大值)表達式接收兩個輸入,然後輸出其中的較大者。

此節點類似於 Photoshop 的“變亮”。

MaxExample.png

在以上示例中,A 爲 "0",B 爲 "1";因此,產生的底色爲 "1"(白色)。

項目

說明

屬性

常量 A(Const A)

接收第一個值。僅當未使用 A 輸入時才使用。

常量 B(Const B)

接收第二個值。僅當未使用 B 輸入時才使用。

輸入

A

接收要比較的第一個值。

B

接收要比較的第二個值。

Min(最小值)

Min(最小值)表達式接收兩個輸入,然後輸出其中的較小者。

此節點類似於 Photoshop 的“變暗”。

MinExample.png

在以上示例中,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(乘)通常用來使顏色/紋理變亮或變暗。

MultiplyExample.png

Normalize(規範化)

Normalize(規範化)表達式計算並輸出其輸入的規範化值。這表示該輸入的每個分量都會除以矢量的 L-2 範數(長度)。

NormalizeExample.png

不必對連接到“法線”(Normal)材質輸出的表達式進行規範化。

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(一減)將返回互補色,這種顏色與輸入相加將產生白色。

OneMinusExample.png

Power(冪)

Power(冪)表達式接收兩個輸入,計算“底數”(Base)的“指數”(Exp)次冪,並輸出結果;換而言之,“底數”(Base)自乘“指數”(Exp)次。

項目

說明

屬性

常量指數(Const Exponent)

接收指數值。僅當未使用“指數”(Exp)輸入時才使用。

輸入

底數(Base)

接收底數值。

指數(Exp)

接收指數值。

示例:底數爲 0.5,指數爲 2.0 時,Power(冪)的結果爲 0.25。

用法示例:如果傳遞到 Power(冪)的顏色在 [0,1] 範圍內,那麼 Power(冪)可以用作對比度調整,即,僅保留較亮的值。

PowerExample.png

Sine(正弦)

Sine(正弦)表達式反覆輸出 [0, 1] 範圍內的正弦波值。最常見的情況是,通過將 Time(時間) 表達式連接至它的輸入,輸出連續的振盪波形。輸出值將在 -1 與 1 之間來回循環。此表達式與 Cosine(餘弦) 表達式輸出之間的差別是,輸出波形偏移半個週期。下圖顯示波的視覺表示:

SineWave.png

項目

說明

屬性

週期(Period)

指定產生的波的週期。換而言之,這是發生一次振盪的長度。

用法示例:在任何需要振盪效果的場合,此表達式都非常有用。通過將時間輸入(速度)或輸出(振幅)倍增,可以輕鬆地動態控制振盪的速度和振幅。

SineExample.png

SquareRoot(平方根)

SquareRoot(平方根)表達式輸出輸入值的平方根。SquareRoot(平方根)只能對單個浮點輸入值執行運算。

SqrtExample.png

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 偏移。

SubtractExample.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章