Blender コンポ辞典

Blender コンポジットノード辞典 - ベクトル

更新日:

ホームに戻る

目次

範囲マッピング

このノードは、数値を好きな範囲に分布させることができる。

出力

  • 値:処理済みの値が出力されます。

パラメータ

  • 範囲制限:処理の結果が「最小へ・最大へ」からはみ出る場合に、クランプ(切り落とし)処理します。はみ出た値は保持されません。

入力

  • 値:処理したい値を入力します。画像も入力できますが、グレースケールに変換される点に注意。
  • 最小から・最大から:入力される値の中から、扱う部分を指定します。
  • 最小へ・最大へ:出力される値の範囲を指定します。

何言ってるかわからない?

分からない人が大半だと思うので(煽り)、使用例を挙げておきます。

レンダリング時にZパス(カメラからの距離を、明るさとして記録した画像)を出力したとします。

でも大抵のZ値は30とか100と桁が大きいので扱いが非常に面倒だし、画像としては0~1の範囲しか表示できないのでビューアーノードに繋げても、深度マップを見ることはできません。

そこでこのノードの出番です。

あなたがレンダリングした深度マップは、調べてみると一番近い距離で30、遠い距離で100の値になってたとしましょう。(これは深度マップを画像ビューアに表示させて、画像上で右クリックしながら見る事ができます。)

これを画像として表示させるためには、0~1の範囲にマッピングすればいいのです。つまり「最小へ・最大へ」(出力)を0と1にすればいいのです(もともとそうなっていますが)。

では入力はどうしましょうか。0~100はナンセンスです(場合によりますが)。なぜなら、入力が0~30、つまり出力が0~0.3までの部分が使われず、もったいないからです。

そこで「最小から・最大から」(入力)を30~100にすると、出力0~1の範囲を無駄なく利用できます。

ご覧の通り、結構面倒くさい。クリックで拡大。

信じられるかい... これと全く同じ処理を、これから3つ目に紹介するノード(正規化ノード)に「つなげるだけ」で出来るんだぜ...

値マッピング

先のノードは最小・最大値を指定するのに対し、このノードは「足す・引く・掛ける」をすることが出来る。

出力

  • 値:処理済みの値が出力されます。

パラメータ

  • オフセット:入力された値に「足す・引く」の処理をします。引く場合はマイナスの数値を入力します。
  • サイズ:入力された値に「掛ける」処理をします。スケールとも言えます。
  • 最小・最大を使用:入力された値をクリップ(クランプ)する処理です。
    • クリップとは:値を切り落とす事。最大を1に設定した状態で2が入力された場合、出力は1になります。ノーマライズとは違います。
    • ノーマライズ:値を拡大・縮小して、指定された数値以内に収める事。正規化とも言います。このノードではできません。

入力

  • 値:処理したい値を入力します。画像も入力できますが、グレースケールになる点に注意。

ノーマル

このノードはノーマルと内積(ドット積)を出力します。

ここでいうノーマルは、ライティングみたいな物と解釈しても良いと思います。

ちなみに、影(Shadow)と陰(Shade)を混同してる人が多い。影は3D空間でしか生成できない。コンポジットで操れるのは陰のみ。

出力

  • ノーマル:法線(ノーマル)ベクトルを出力します。
  • 内積:ベクトルではなくスカラーが出力される(当たり前の話だが)ので、単純に陰(影ではありません)のような挙動をする。

レンダリング後でも、自由に陰の向きを変更できる。

  • 参考になりそうなサイト
    • またまたdskjal氏のブログ:Normalマップで出来た陰を、レンダリングパスの影と統合する方法が書いてあります。

内積とは

「オブジェクト表面のピクセルごとのベクトル(レンダリング済)」と「ノードで指定したベクトル」のドット積を返しているのだが、これが非常に便利な代物で

  • 「なす角」が0°、つまりオブジェクト表面のベクトルとライティングとして入力したベクトルの「向きが同じ」である場合、1を返す(ライトに照らされている)。
  • 「なす角」が45°、表面とライトが45°で交わっている場合は0.707...を返す。
  • 「なす角」が90°、表面とライトが垂直に交わっている場合は0(ライトに照らされていない)。

というように、2つのベクトルだけで、疑似的にライトに照らされている状態を作り出せるのだ!

パラメータ

  • 白い球体:これをドラッグしてぐりぐり動かして使う。これは実質的にベクトルの向きを3次元で表している。

入力

  • ベクトル:処理したいベクトルを入力する。画像も入力できる。

正規化

英語でも日本語でも「ノーマライズ」の方が一般的な呼び方である。

分布している値を、任意の範囲に拡大・縮小して「全て」収めることが出来る。切り落とす「クリップ(クランプ)」とは対照的である。

出力

  • 値:正規化された値を出力する。かならずすべての値が0~1の間で出力される。

入力

  • 値:正規化したい値を入力する。

最小値・最大値は?

正規化ノードでは自動的に入力値の最小・最大を見つけて、最小値が0に、最大値が1になるようにスケーリングしてくれるので安心を。

例えば「10・20・30・40・50」の値をノーマライズすると「0・0.25・0.5・0.75・1」になる。

ちなみにクリップすると「1・1・1・1・1」になる。

ベクターカーブ

仕組みはRGBカーブとなんら変わらない。ベクトルに含まれる(X, Y, Z)の成分を分解して、カーブを使って値を変化させるだけだ。

出力

  • ベクトル:処理済みのベクトルが出力される。

パラメータ

  • X・Y・Z:操作するチャンネルを選ぶ。
  • グラフ:横軸が入力値・縦軸が出力値を表している。

入力

  • ベクトル:処理したいベクトルを入力する。

-Blender コンポ辞典

Copyright© Studio Gotz Blog , 2019 All Rights Reserved Powered by AFFINGER5.