HoudiniのCOPでUVパスを元にテクスチャを入れ替える 2


前回はUVパスでテクスチャを入れ替える概要を説明したので、今回は実際にノードを使って説明しようと思います。まずはライティングパスの作り方を説明したいと思います。

3

 

今回のサンプルファイルです。
UV_ReplaceTexture_1.zip

 

ライティングパスは Diffuse / Diffuse Color で求めるのでした。Compositeノードで加算、減算、乗算ができるのに、なぜか除算ができません。なのでVOPによって除算を計算します。

1

 

今回のCOPネットワークは下のようになります。Channel CopyノードによってDirect Diffuse と Diff_clrのパスをカラーチャンネルに入れています。そしてVOPによって除算するわけです。

5

 

COPのVOPノードは VOP COP2 Filter と VOP COP2 Generator の2つがあります。Generatorの方は新たに画像を作る用でインプットを繋げないで使います。今回は既にある画像に処理を加えたいのでFilterの方を使います。 COP VOPはピクセル毎に処理されます。そしてPlane Scopeで指定したチャンネルに対して処理されます。COPではパスなどの事をPlaneと呼びます。今回はカラーチャンネルの C しか処理しないので、Plane Scopeの所でRGBだけ処理するようにします。

2

 

VOPネットワークは以下のようになります。ベクトルをDivideノードで割り算しているだけです。ベクトルをベクトルで割れるのか? と思うかもしれませんが、VOPのDivideはただ単純にベクトルのr、g、bをそれぞれ単純に割っているだけです。
COP Input ノードによって他のPlane(パス)の情報を読み取っています。Input Index というのが VOP COP2 Filterに繋がったインプットを意味しています。0 だと最初のインプット、1 だとふたつ目のインプットという様になります。
Plain Index と言うのはパスのインデックスのことで、Constantによって0をインプットしています。デフォルトが既に 0 なのでConstant繋ぐ必要は無いのですが、どのパスを処理しているかを分かりやすくするために繋げてあります。
Outputノードに R、G、B と Cr、Cb、Cg があります。R、G、B はそのままカラーチャンネルに出力し、Cr、Cb、Cg に繋がれたものは現在処理されているPlaneのRGBに対して結果が出力されます。今回はRGBに対してのみ処理しているのでR、G、Bに出力していますが、Cr、Cb、Cgに出力しても同様の結果となります。

3

4

 

これで Diffuse / Diffuse Color の計算がされてライティングだけの情報を作り出すことができました。

6

 

次回はどのようにテクスチャをUVによって入れ替えるのか説明したいと思います。