Labs Normal Color / / Normal From Grayscale / Normal Combineノードについて


こちらの記事では、「Labs Normal Color」「Labs Normal From Grayscale」「Labs Normal Combine」ノードの概要および各ノードのパラメーターについてご紹介します。
SideFXLabsツールのノードは、SideFX社のホームページで紹介されています。併せてご覧ください。

SideFXLabsツールのインストール手順

SideFX Labsツールセットのインストール手順については、以下の記事をご参照ください。

Houdiniの内部システムからの直接インストール

Githubからの手動インストール


Labs Normal Colorとは

デフォルトの法線カラーを生成するシンプルなノードです。
任意の解像度を使用して、デフォルトの平坦な法線カラー(RGB値:128,128,255)を生成します。
法線は、正規化された三次元ベクトルなので、法線情報はXYZのそれぞれ値-1から1までの範囲で示され、画像の場合は、値0.5を[0]としたRGBの値0から1を保持しています。
平坦なノーマルマップは、Labs Normal Colorノードが提供する[Color:0.5,0.5,1]または(128,128,255)に設定されます。
Labs Normal Colorノードは、その他のNormalノードと合成させる場合に役立ちます。

各パラメーターについて

①Size

画像の解像度を設定します。



Labs Normal From Grayscaleとは

グレースケール画像をノーマルマップに変換します。
グレースケール画像をノーマルマップに変換することは、ゲーム開発の一般的な作業です。

各パラメーターについて

①Strength

ノーマルマップの強度を調整します。

②Blur Strength

ノーマルマップでベベルを見せかけるために使用できる追加のぼかしを設定します。

③Flip X

レッドチャンネルを反転します。

④Flip Y

グリーンチャンネルを反転します。レンダラーが別のタイプのノーマルマップを必要としている場合に役立ちます。



Labs Normal Combineとは

2つのノーマルマップをレイヤー化するシンプルなノードです。
このノードに入り、copfilter内で、2つのマップを合わせて追加するために使用している公式を確認することができます。
一般的な考え方は、両方のノーマルマップを-1から1の空間に移動させ、それらを合わせて追加し、結果を正規化して、0から1の空間に戻すというものです。

※Labs Normal Combineノードには、パラメーターが実装されていないため、ここからは3つのノーマルノードの機能についてご紹介します。



Labs Normalノードの機能

こちらでは、Labs Normal Color / Normal From Grayscale / Normal Combineノードの機能についてご紹介します。今回は、Houdini18.0.460を使用しています。最初に、Houdiniを起動してSideFX Labsツールが正常に読み込まれていることを確認します。

最初にノーマルノードを扱う上でオブジェクトネットワークからコンポジットネットワークへ移動します。
Network Viewの[img] > [comp1]を選択します。また、ビューポートをScene Viewから[Composite View]に変更します。

●Labs Normal Colorノード
コンポジットネットワーク上でLabs Normal Colorノードを作成します。すると、ビューポート上にノーマルマップが作成されます。パラメーターの[Size:1024,1024]に変更することでノーマルマップの解像度を1024に設定することができます。

●Labs Normal From Grayscaleノード
次に、Fontノードを作成します。こちらでは、Textパラメーターで[SideFX Labs Tool]と入力しています。ビューポート左上の情報から、Fontノードの解像度が1920×1080ということが確認できます。

■補足
Image > Override Sizeを参照することでFontノードの解像度を確認することができます。デフォルトは1920×1080です。

Fontノードの下にLabs Normal From Grayscaleノードを接続します。
ディスプレイフラグを付けると、グレースケール画像(フォント)がノーマルマップに変換されたことが確認できます。

Strengthパラメーターの数値を高くすることで、ノーマルマップの強度が大きくなります。

また、Blur Strengthパラメーターの数値を高くすることで、ノーマルマップにぼかしが追加されます。

●Labs Normal Combineノード
次に、Labs Normal Combineノードを作成します。第一入力にLabs Normal Colorノードを接続して、第二入力にLabs Normal From Grayscaleノードを接続します。

Labs Normal Colorノードに対して、Labs Normal From Grayscaleノードが追加されたことが確認できます。
Labs Normal Combineノードは、2つのノーマルマップを合成するためのノードです。その為、異なる解像度のノーマルマップを使用した場合、第一入力の画像サイズにトリミングされます。(解像度の違いは画質には関係ありません)

■画質の差異について
Labs Normal From GrayscaleノードとLabs Normal Combineノードでは、表示されるノーマルマップが異なることが確認できます。

これは、Labs Normal Combineノードの第一入力のノーマルマップ(0,0,1)に対して、第二入力のノーマルマップ(nx,ny,nz)が合成されたためです。

■補足:画像RBGの値0から1をノーマル空間の値-1から1にリマップする手順
Labs Normal Combineノードは、接続される2つのノーマルマップの範囲を値-1から1に移動させ、それら2つの値を合わせて追加し、結果を正規化して画像RGBの値0から1に戻します。

下の画像は、第一入力RGB=0.5,0.5,1.0、第二入力RGB=0.844,0.5,0.854をノーマル空間に移動させ、値を合わせて追加し、結果を正規化しRBGに戻した結果です。

計算式は以下を使用します。

「Labs Normal Color」「Labs Normal From Grayscale」「Labs Normal Combine」ノードについては以上です。

これらのノードを使用することで、ノーマルカラーの生成やグレースケール画像をノーマルマップに変換および2つのノーマルマップのレイヤー化など、Labsツールを使用することで容易に作業を行うことが出来ます。

次の記事では、このシーンファイルを基に「Labs Normal Rotate」「Labs Normal Levels」「Labs Normal Invert」「Labs Normalize Normal」の4つのツールについてご紹介します。