Math (数式)ノード
Math Node 数式ノードは、数学的演算を実行します。
入力
ノードの入力は動的です。一部の入力は、特定の操作でのみ使用できます。たとえば、 Addend 入力は Multiply Add 演算子でのみ使用できます。
- Value(値)
入力値。三角関数は、この値をラジアンとして読み取ります。
- Addend
Addendの入力。
- Base (ベース)
ベースの入力。
- Exponent (指数)
指数の入力。
- Epsilon (イプシロン)
イプシロンの入力。
- Distance(距離)
距離の入力。
- Min (最小)
最小の入力。
- Max (最大)
最大の入力。
- Increment (増分)
増分の入力。
- Scale(スケール)
拡大縮小の入力。
- Degrees (度)
度の入力。
- Radians (ラジアン)
ラジアンの入力。
Properties(プロパティ)
- Operation
入力値に適用される数学演算子:
- Functions (関数)
- Add(追加)
2つの値の合計。
- Subtract(減算)
2つの値の差。
- Multiply
2つの値の積。
- Divide (除算)
最初の値を2番目の値で除算。
- Multiply Add (積和算)
Addend による、2つの値の積の合計。
- Power
Base が Exponent 乗となる。
- Logarithm (Log)
Base をベースとする値のlog。
- Square Root (平方根)
値の平方根。
- Inverse Square Root (逆平方根)
値の平方根で割った値。
- Absolute(絶対)
The input value is read without regard to its sign. This turns negative values into positive values.
- Exponent (指数)
Euler's number を値の乗数に。
- Comparison (比較)
- Minimum (最小)
入力値の最小値を出力。
- Maximum (最大)
2つの入力値の最大値を出力。
- Less Than (小さい)
最初の値が2番目の値より小さい場合、1.0を出力。それ以外の場合、出力は0.0。
- Greater Than (大きい)
最初の値が2番目の値より大きい場合、1.0を出力。それ以外の場合、出力は0.0。
- Sign (符号)
入力値の符号の抽出。 正の数は1.0を出力します。負の数は-1.0を出力します。0.0は0.0を出力します。
- Compare (比較)
2つの入力値の差が*Epsilon*以下の場合、1.0を出力します。
- Smooth Minimum
- Smooth Maximum
- Rounding (丸め)
- Round (丸め)
Rounds the input value to the nearest integer.
- Floor(床)
入力値を最も近い整数に切り捨て。
- Ceil (天井)
入力値を最も近い整数に切り上げ。
- Truncate (切り捨て)
値の整数部分を出力。
- Fraction (小数部)
- Modulo (剰余)
最初の値を2番目の値で除算した、余りを出力。"
- Wrap (ラップ)
入力値と、その値より小さい Max の整数倍に最も近い値との絶対差に基づき、Min と Max 間の値を出力します。
- Snap(スナップ)
Rounds the input value down to the nearest integer multiple of Increment.
- Ping-pong (ピンポン)
出力値は、入力値に基づいて、0.0と Scale の間で移動します。
- Trigonometric (三角関数)
- Sine (サイン)
The Sine of the input value.
- Cosine (コサイン)
入力値の Cosine 。
- Tangent
入力値の Tangent 。
- Arcsine (アークサイン)
入力値の Arcsine 。
- Arccosine (アークコサイン)
入力値の Arccosine 。
- Arctangent (アークタンジェント)
入力値の Arctangent 。
- Arctan2 (アークタンジェント2)
ラジアンで測定した2番目の値で割った最初の値の Inverse Tangent の出力。
- Hyperbolic Sine (双曲線サイン)
入力値の Hyperbolic Sine 。
- Hyperbolic Cosine (双曲線コサイン)
入力値の Hyperbolic Cosine 。
- Hyperbolic Tangent (双曲線タンジェント)
入力値の Hyperbolic Tangent 。
- Conversion(変換)
- To Radians (ラジアンへ)
入力を度からラジアンに変換。
- To Degrees (度へ)
入力をラジアンから度に変換。
- Clamp(範囲制限)
出力を(0.0〜1.0)の範囲に制限。 Clamp を参照してください。
出力
- Value(値)
数値出力。
例
手動での Z-マスク
この例では、カメラから約10ユニット離れた立方体を持つ、上段の レンダーレイヤー ノードによって入力された1つのシーンがあります。下段の レンダーレイヤー ノードは、ビューの左半分をカバーし、カメラから7ユニット離れた平面を持つシーンを入力します。両方とも、それぞれの Map Value ノードを介して供給され、Zバッファを20で除算し(サイズフィールドに表示されているように0.05を掛けます)、それぞれ最小/最大が0.0/1.0になるようにクランプされます。
Minimum 関数の場合、ノードは、対応するピクセルがカメラに近いZ値を選択します。そのため、平面と立方体の一部のZ値を選択します。背景のZ値は無限であるため、1.0にクランプされます(白で表示)。Maximumの例では、立方体のZ値が平面よりも大きいため、左側に選択されますが、平面のレンダリングレイヤーZは右側に無限(1.0にマッピング)であるため、選択されます。
脈動のためのサイン関数の使用
この例には、101フレームの間に0から1までの線形シーケンスを出力する Time ノードがあります。フレーム25では、出力値は0.25です。その値は 2 × pi(6.28) で乗算され、サイン関数によって1.0に変換されます。 \(sin(2 × pi/ 4) = sin(pi/ 2) = +1.0\)
サイン関数は (-1.0 から 1.0) の間の値を出力できるため、 Map Value ノードは、入力 (-1 から 1) を取得し、1を加算 (0 から 2になる) し、結果に1/2を掛ける(こうして、出力を 0 から 1 にスケール)ことにより、0.0 から 1.0 にスケールします。デフォルトの Color Ramp は、これらの値をグレースケールに変換します。こうして、サイン関数により、ミディアムグレーは 出力 0.0 に対応し、黒は -1.0 に、白は 1.0 に対応します。As you can see, \(sin(pi/ 2) = 1.0\). Like having your own visual color calculator! Animating this node setup provides a smooth cyclic sequence through the range of grays.
この機能を使用して、例えば、画像のアルファチャネルを変更して、フェードイン/フェードアウト効果を生成します。Zチャンネルを変更して、シーンの焦点を合わせたり外したりします。カラーチャネル値を変更して、カラーを "パルス" にします。
チャネルを明るくする(スケールする)
この例には、画像の輝度チャネル(Y)を増やして明るくする Math (Multiply) ノードがあります。出力を有効な値にクランプするには、min() と max() を有効にして Map Value ノード を使用する必要があることに注意してください。このアプローチでは、対数関数を使用してハイダイナミックレンジ画像を作成できます。この特定の例では、明るさをより簡単に制御できる Bright/Contrast ノード もあります。
色の選択を制限(ポスタリゼーション)
この例では、色の値を 0、0.2、0.4、0.6、0.8、1の6つの値のいずれかに制限します。
0 から 1 までの値の連続範囲を特定の値セットに分割するには、次の関数を使用します。\(round(x × n - 0.5) / (n - 1)\) ここで、 "n" は可能な出力値の個数、 "x" は入力ピクセルの色です。 この関数の詳細をご覧ください 。
この関数をBlenderに実装するには、上記のノード設定を検討してください。Math ノードを、各色(0から1の値)を取り、それを希望する分割数 6 を掛け(値は0から6になります)、0.5でオフセットし(-0.5から5.5)、値を最も近い整数に丸め(0、1、2、3、4、5を生成)、次に画像のピクセルカラーを5で除算します(0.0、0.2、0.4、0.6、0.8、1.0)。
In the case of a color image, you need to split it into separate RGB channels using Separate/Combine RGBA nodes and perform this operation on each channel independently.