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]
)を使用します。
VEXpressionを使用すれば、インスタンス(例えば、/geometry/instancer[{@weights>0.5}]
)を指定することができます。
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 |