Houdini Surface Shader – VOP Basic

シェーダはSHOPコンテキスト内で操作する

20140505_01_2

シェーダの作成

・Material Palette

20140505_01_0

左側のプリセットを右側のブロックにドラッグして簡単作成

・Network View

TABキーからシェーダーノード名を指定。
Houdiniのバージョンアップに伴い、デフォルトのシェーダ名が変更されているケースが散見される。
最も基本的なシェーダは Material Shader Builder で良さそう。

VOPの基本

20140505_01_1

シェーダアイコンをダブルクリックするとシェーダーを定義しているノードネットワークに入れる。

VOPノード

VOP内のノード表示はこんな感じ

20140505_01_3

ノードの左右端にはノードのコネクト用プラグが並ぶ。

・パラメータ名

フルネームが表示したければPreferenceのNetwork Editorオプションから設定

20140505_01_4

・Nodeコネクション

プラグクリックでコネクタを伸ばし始め、コネクト先プラグをクリックで接続
肩は色分けされているので、ひと目で分かる。

違う型のAttributeを接続する場合は間に「Float To Vector」などの変換ノードを挟む。

基本的な使い方

各種ノードを作成し、それぞれの出力をAdd VOPなどのオペレーターを使用して計算し、最終的にoutputノードへ接続して結果を出力する。

ノードの自動作成

各種入力プラグを中ボタンでクリックすると、よく使うノード(場合によっては小さなノードネットワーク)を自動作成できるようだ。

20140505_01_8

特徴的なのはPromote Parameterで、Parameterノードが接続されたパラメータは、親のShaderノード内にExposeされ、VOPネットワークに入らなくても触れるようになる。

各種ノード

・Parameter

外から値を入力する窓口となるノード。
Parameterノードを作ると、親ノードの中にParameterノードと同じ設定のパラメータが作成される。
親ノード側のパラメータを操作することで、VEX内のノードに与えるパラメータを直接操作できるようになる。

ExportをAlwaysに設定すると、他のコンテキストからこのパラメータを参照できるようになる。
また、こうすることで、VEXネットワーク内で入力パラメータも持つようになる。

・Constant

定数ノード。Typeを指定して様々な型の定数を出力できる。

任意のプラグを中クリックし、ポップアップメニューからConstantを選択することで、そのプラグに接続された状態でConstantノードが作成できる。

・Add/Sub/Multiply/Divideなど

一般的な計算ノード

型の違うパラメータ同士を計算する際は、入力の順番に気をつける必要がある。

20140505_01_5

multiply1はvector型を先に受け取ったので、出力もVector型(ベクトル積)
multiply2はfloat型を先に受け取ったので、出力はfloat型(スカラー積)

※実際に値を表示する方法がわからないのでどのような計算結果が返るかは現時点では不明

・Random

名前の通りの動作。
入出力のタイプをノード内で決定できる。

20140505_01_6

※VOPノードはこのように、ノード内で入出力タイプを切り替えられる場合が多いようだ。

・Lighting Model

シェーダへのライトの影響タイプを定義するノード。Lanbertian/Blinn/Phongなど、古典的なLighting Modelを選択できる。

Lighting ModelパラメータでVEX Specularを選択することで、独自の光沢を作成することができる。

VEXのデータ型

Constantで作れるデータ型は以下のような感じ

20140505_01_7

3Floats/Vector/Colorや、int/toggleなどのように、似ているデータ型が複数存在する。
カッコの中に型名が記載されているので、この型が合っているプラグ同士であれば接続できる。

コメントを残す