続き:
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(2D/3D Procedural/Texture 編)
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Adjustment 編)
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Application 編)
Compositing は、複数の値をもとにひとつの値を生成するノードカテゴリ。
- Compositing
- Premultiply
- Unpremultiply
- Additive Mix
- Subtractive Mix
- Difference
- Burn
- Dodge
- Screen
- Overlay
- Disjoint Over
- In
- Mask
- Matte
- Out
- Over
- Inside
- Outside
- Mix
膨大にあるが、Input / Output は共通しているものが多いので分類して見てみる。
Premultiply, Unpremultiply を除くすべてのドキュメントにサンプル画像あるので理解しやすい。2枚のテクスチャの合成に使うっぽいが、具体的にどういったケースで使いたくなるかはイメージできていない。
In: Color4 → Out: Color4
Premultiply, Unpremultiply
Premultiply は、ストレート(RGB画像+透明度を示すアルファチャンネルの画像)に対して透明度を乗算し、アルファが高いほど暗くしたもの。
Unmultiply はその逆で、プリマルチ処理を逆算し、ストレートを復元するもの、と理解した。
以下記事が画像付きで解説しており参考になった。
コンポジターに必要なアルファチャンネルの知識(後編) – コンポジゴク
(Foreground: Float, Background: Float, Mix: Float) → Out: Float
Mix, Additive Mix, Subtractive Mix, Burn, Dodge, Screen, Overlay
Background, Foreground の2色を、それぞれのノードごとに定義された数式(各ドキュメントに記載あり)で計算し、アウトプットの色を生成するもの。
Mix 値は基本的にブレンドのウェイトであると説明されているが、Mix ノードに限っては数式内の係数として明示されている。
Over, Disjoint Over, Matte
Foreground, Background それぞれのアルファチャンネルを用いた合成処理。Over が単純な合成で、Foreground のアルファに応じて合成される。
一方 Disjoint Over は、説明読むところ、Foreground のアルファと Background のアルファの合算値によって処理が変わるようで、1を超えない場合は単純な合成、ただし1を超えると Background 側の重みが下がるっぽい(ドキュメントの数式が F+b(1-f)/b となっていたが、F+B(1-f)/b の間違いでは?)。これにより、Output のアルファは 1 よりも常に小さくなる。
Matte は、RGB チャンネルが Ff+B(1-f)、アルファチャンネルが f+b(1-f) によって計算され、つまり Foreground 側のアルファチャンネルの反転で Background をマスクしている?
In, Out, Mask
In は Background アルファと重なる Foreground を残し、
Out は Background アルファと重ならない Foreground を残す。
(Background はアルファチャンネルのみを利用するため、Background テクスチャ画像は描画されない)
Matte は In の逆で、Foreground アルファをもとに Background を残す。
(Foreground はアルファチャンネルのみを利用するため、Foreground テクスチャ画像は描画されない)
(In: Float, Mask: Float) → Out: Float
Inside, Outside
いわゆるマスク画像をバイパスしてマスキングする、っぽい。(ドキュメントのサンプルを見れば一目瞭然)