| On this page | |
| Since | 18.0 |
概要
このノードは、マテリアルを割り当てたPrim/ポイントインスタンス単位で個々にそのマテリアルパラメータの値(例えば、Base Color)を変更することができます。
このノードは、マテリアルオーバーライドのPrimvarsの編集を容易にし、エクスプレッションやVEXを使ってそのオーバーライド値を計算することができます。
マテリアルのオーバーライド
-
USDでは、Prim上の Primvar の名前が、そこに割り当てたマテリアルのマテリアルパラメータの名前に一致した場合、そのPrimをシェーディングする時にそのPrimvarの値でそのマテリアルパラメータをオーバーライドすることができます。
(インスタンサー上に各インスタンスの値が格納された配列Primvarがあれば、これはポイントインスタンスでも動作します。)
-
HoudiniのKarmaレンダラーは、Primvarsで任意のパラメータをオーバーライドすることができます。
-
多くの他のレンダラーとシェーダ(例えば、RenderManと
UsdPreviewSurface)では、シェーダ側で明示的にオーバーライド可にしたパラメータのみをオーバーライドすることができます。
Tipsとメモ
-
レンダーデリゲートによっては、Primvarsを上手く読み込ませるためには、特定のタイプのシェーダをマテリアルに取り付ける必要があります。
例えば、USD Preview Surfaceは、USD Primvar Readerシェーダを介して読み込まれたPrimvarsのみを認識します。 Rendermanを使用する場合、
pxrprimvarシェーダが必須です。Karmaは技術的には任意のPrimvarを読み込んでそれと同じ名前のパラメータをオーバーライドすることができますが、ドロップダウンメニューの名前は、バインドシェーダを介して指定されたPrimvarsのみを表示します。
-
VEXスニペットでは、コロン(
:)を含んだ@変数名を使用することができます。これによって、特定のUSDアトリビュート名(例えば、i@primvars:foo)を自動的にバインドするのが簡単になります(通常、このような名前はVEXソースコード内では有効ではありません。このような名前がスニペット内で使用されると、このノードが自動的にその名前をエンコードします)。
パラメータ
Type
Prims(インスタンス化可能Primsを含む)またはポイントインスタンスのどれに対してオーバーライドを作成したいのか指定します。
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある 再選択ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この再選択ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(
/path/to/prim.collection:name)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Instances
/path[instance_index]構文を使って、スペース区切りのインスタンスのリスト(例えば、/geometry/instancer[0] /geometry/instancer[1])を指定します。
インスタンサー内のすべてのインスタンスを選択したいのであれば、/path[*]を使用します。
範囲を選択したいのであれば、/geometry/instancer[4-7](指定した番号を含む)を使用します。
入れ子のインスタンサー内のインスタンスを選択したいのであれば、複数のインデックス(例えば、/geometry/instancer[2][7])を使用します。
Primvars
1個のノードで複数のマテリアルパラメータをオーバーライドすることができます。 ここで作成/編集したいオーバーライドの数を設定するか、または、プラスとマイナスのボタンをクリックしてオーバーライドを追加/削除します。
Enable
各オーバーライドに対して、実際にPrimvarを編集するかどうか。
Name
作成/編集するPrimvarの名前。
primvars:接頭辞を含めないでください。
このフィールドの隣にあるドロップダウンメニューからマテリアルパラメータの名前を選択することができます。
Type
PrimvarのUSDデータタイプ。 これはマテリアルパラメータのタイプに合わせてください。 (ドロップダウンメニューから Name を選択すると、ここは自動的に設定されます)
Source
Internal SOP
このノードの中にあるSOPサブネットを使用して、Prim/インスタンスを表現したポイントを処理します。
External SOP
外部SOPネットワークを使用します。そのネットワークでゼロからPrim/インスタンスを表現したポイントを生成する必要があります。
Uniform
パラメータを使用します(このパラメータはエクスプレッションで駆動させることができます)。
Interpolation
Source が“Uniform”に設定されていて、 Use Snippet が有効になっている場合、メッシュPrimで作成されるPrimvar補間は次の値に設定され、そのPrimvarはその値と同じ長さの配列アトリビュートで作成されます。 インスタンスまたはメッシュ以外のPrimで作成されるPrimvarの補間は常に“constant”に設定されます。
Scalar Values
“constant”補間のPrimまたはネイティブインスタンスのPrimvarを作成する時、これは、そのPrimvarを配列長1ではなく単一のスカラー値として作成することができます。
Use Snippet
Source が“Uniform”の時、VEXスニペットを評価することで各Prim/インスタンスの値を取得します。
VEXスニペットでは、オーバーライド値をvalue変数に書き込んでください。
indexは現行Prim/インスタンスのインデックスです。
@Frameや@Timeを使用することで、値を時間依存にすることができます。
Value
Source が“Uniform”の時、このPrimvarに使用する値(この値はエクスプレッションで駆動させることができます)。
| See also |