Smooth Minimum / Maximum
Geometry Node の Math Node の Type が "Smooth Minimum" と "Smooth Maximum" について説明します。
[Node 表示方法]
Shift + A 押下後、"math" と入力すれば Math Node が出てきます。
Math Node の Type は初期状態で Add が選択されています。

Math Node 作成後、Type を "Smooth Minimum" か "Smooth Maximum" にしてください。


[基本説明]
"Smooth Minimum" は文字通り "Minimum" を滑らかにしたような関数です。
"Smooth Maximum" は同様に "Maximum" を滑らかにしたような関数です。
[Smooth Minimum の数式とグラフ]
Smooth Minimum Node は 3つの入力値 Value、Value、Distance を持ちます。
3つの入力値を a, b, c とおくと smoothmin 関数は以下のように定義されます。
smoothmin(x,1,1) のグラフは以下です。

[Smooth Maximum の数式とグラフ]
smoothmax 関数は smoothmin 関数を使って以下のように定義されます。
smoothmax(x,1,1) のグラフは以下です。

Smooth Step
Geometry Node の Map Range Node の Type が "Smooth Step" について説明します。
[Node 表示方法]
Shift + A 押下後、"map range" と入力すれば Map Range Node が出てきます。
Map Range Node の Interpolation は初期状態で Linear が選択されています。

Map Range Node 作成後、Interpolation Type を "Smooth Step " にしてください。


[基本説明]
"Smooth Step" は文字通り Step 関数を滑らかにしたような関数です。
注意すべきは計算されたパラメータ t が [0, 1] に clamp されることです。
(パラメータtについては数式参照)
[数式とグラフ]
式は Pythonで書きます。
def smoothmin(x, from_min, from_max, to_min, to_max): # 正規化された補間係数 t を計算 t = (x - to_min) / (to_max - to_min) # t を 0〜1 に clamp t = max(0.0, min(1.0, t)) # Hermite 補間係数 s を計算(C¹連続) s = t * t * (3 - 2 * t) # 線形補間で値を返す return (1 - s) * from_min + s * from_max
smoothstep(x,0,1,0,1) 関数のグラフは以下です。

Minimum 関数
の関数のグラフは以下です。

Maximum 関数
の関数のグラフは以下です。

Step 関数
の関数のグラフは以下です。

この関数のグラフには Math Node の Type が Greater Than のものを使用しました。

