元記事:blender.org - Composite- UV Map- Displace- ID Mask and Z Combine
'UV Texture Face' のある Mesh Object の UV 座標を、レンダー Pass で保存し、その後、Compositor で別のテクスチャをマッピングし直すための Input として使用できるようになりました。
残念ながら、UV 値は色のように簡単にはフィルタリングやアンチエリアスできません。また、その UV 画像の情報から、適切かつジャギーのないマップ画像を新しく再現できない、という重大な問題もあります。Blender では、それを以下のように解決しています。
サンプルデモファイル:Cube の UV マップと Emo 頭部(テクスチャなし)
Dilate/erode(拡張/侵食)ノードは、マスクとその周辺にあるピクセルを、最大もしくは最小値(Distance)で比較し、マスクの拡張と縮小を行います。Matte ノードの後のキーのクリーンアップに非常に便利です。負の値でマスクの縮小、正の値で拡張を行います。
Displace ノードは Input の Vector マスクを元に、画像のピクセルを移動します。熱気による空気のゆがみや、低品質だが高速なコンポジットによる屈折、屈折する Object の後ろにある実写映像との合成など、多くのことに利用できます!
X と Y 方向のピクセルの移動量は以下のように決められます。
Displace ノードは二つの方法で使用できます。ひとつはグレースケールマスクによる方法(ペイントもしくはプロシージャルテクスチャから取得するのが簡単です)、もうひとつは、Vector チャネルや RGB 画像を利用する方法で、例えば Normal Pass では、ピクセルが Normal の方向を元に移動します。
Matt Ebb氏による、熱気による空気のゆがみのデモビデオ(.blend ファイル)
このノードは、ある Object Index Pass の番号を、アンチエリアスされた Alpha マスクへと変換します(ObjectButtons 内の "Object and Links" パネルで、Object Pass のインデックスは設定できます)。
インデックスがフィルタリングやアンチエリアスできないため、補間した値でジャギーを塗りつぶす、ポストプロセス機能が使用されています。ここでは、ベクターブラーのマスク作成と同じ機能を使用しています。
マスクデモの .blend ファイル
ID Mask と同じマスキング方法を使用することで、Z-Combine も同様にアンチエリアスされるようになりました。Z 値はまだジャギーがあり、Z のピクセル毎に1サンプルのみが Compositor へ渡されるため、マスクはまだ完全ではないことに注意して下さい。
元記事:blender.org - Composite- UV Map- Displace- ID Mask and Z Combine
Composite ノード:
UV Map、Displace、ID Mask、Z-Combine
UV Map ノード
レンダリングされた二つのイーモの頭部 | UV Pass を使用し、新しいテクスチャを追加 |
二つの Cube の細部 | その UV 値 |
Alpha マスク作成 | タイルテクスチャをUV マッピング |
残念ながら、UV 値は色のように簡単にはフィルタリングやアンチエリアスできません。また、その UV 画像の情報から、適切かつジャギーのないマップ画像を新しく再現できない、という重大な問題もあります。Blender では、それを以下のように解決しています。
- レンダリング中、UV 値はシンプルな(1ピクセル幅の)Box フィルタを使用してまとめられます。更に、Alpha も別に格納され、Object の端が正しく再現できるようにします。
- Composite "UVMap" ノードは、この Pass バッファを読み込み、3×3ピクセルの微分フィルタを UV 値に適用します。これで、マッピングされる画像内の、サンプルエリアサイズの情報が得られます。
- もし、このサンプルエリアサイズが閾値(UV Mask ノードの "Alpha" ボタン)を超えると、Output 画像に別に格納しておいた Alpha 値を追加します。
- この Alpha を Conposite に使用することで、アンチエリアスや Face の重ね合わせ、別の UV 値を持つ、近接した Face によって生じるエラーをマスクして除外できます。
サンプルデモファイル:Cube の UV マップと Emo 頭部(テクスチャなし)
Dilate/Erode ノード
Dilate/erode(拡張/侵食)ノードは、マスクとその周辺にあるピクセルを、最大もしくは最小値(Distance)で比較し、マスクの拡張と縮小を行います。Matte ノードの後のキーのクリーンアップに非常に便利です。負の値でマスクの縮小、正の値で拡張を行います。
Displace ノード
Displace ノードは Input の Vector マスクを元に、画像のピクセルを移動します。熱気による空気のゆがみや、低品質だが高速なコンポジットによる屈折、屈折する Object の後ろにある実写映像との合成など、多くのことに利用できます!
X と Y 方向のピクセルの移動量は以下のように決められます。
- マスクのチャネルの値(R もしくは Channel1は X 軸の正負の方向に、Gもしくは Channel2は Y 軸の正負の方向に移動します。もし両方のチャネルの値が同じ(グレイスケールなど)なら、X と Y の両方向に同じだけ移動します。
- X Scale と Y Scale ボタンは、各軸の移動の強さを、乗算することで大きくしたり小さくできます。0以外の値を与えないとエフェクトが起こりません。
Displace ノードは二つの方法で使用できます。ひとつはグレースケールマスクによる方法(ペイントもしくはプロシージャルテクスチャから取得するのが簡単です)、もうひとつは、Vector チャネルや RGB 画像を利用する方法で、例えば Normal Pass では、ピクセルが Normal の方向を元に移動します。
Matt Ebb氏による、熱気による空気のゆがみのデモビデオ(.blend ファイル)
ID Mask ノード
このノードは、ある Object Index Pass の番号を、アンチエリアスされた Alpha マスクへと変換します(ObjectButtons 内の "Object and Links" パネルで、Object Pass のインデックスは設定できます)。
インデックスがフィルタリングやアンチエリアスできないため、補間した値でジャギーを塗りつぶす、ポストプロセス機能が使用されています。ここでは、ベクターブラーのマスク作成と同じ機能を使用しています。
マスクデモの .blend ファイル
ID Pass からの素の出力 | アンチエリアスルーチンを適用 | カラー化するためにマスクを適用 |
Z-Combine ノード
ID Mask と同じマスキング方法を使用することで、Z-Combine も同様にアンチエリアスされるようになりました。Z 値はまだジャギーがあり、Z のピクセル毎に1サンプルのみが Compositor へ渡されるため、マスクはまだ完全ではないことに注意して下さい。
Z-Combine、アンチエリアスマスクなし | Z-Combine、アンチエリアスマスクあり |
元記事:blender.org - Composite- UV Map- Displace- ID Mask and Z Combine
投票数:117
平均点:10.00
Blender2.43 SculptMode |
Blender機能別 |
Blender2.43 マルチUV・VertexColor |
ログイン
クイックリンク
2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki