| On this page | |
| Since | 17.0 |
概要 ¶
Note
Houdini20では、Material Library LOPでのマテリアル作成の方法が根本的に変更されました。 以前のバージョンまでは、ライブラリのルートレベルからすべてのシェーダノードにアクセスできていました。 これが原因で、互換性のないシェーダノードが混在できてしまい混乱を招いてしまうことがよくありました。 現在では、シェーダはサブネット内で作成するようになりました:
-
Karma Material Builder
-
USD MaterialX Builder
-
VEX Material Builder
-
USD Preview Material Builder
新しい手法では、Tabメニューのノードもフィルタリングされ、例えば、MaterialXノードをVEXサブネットに追加することはできません。
このノードは、シェーダVOPノードをUSDマテリアルPrimsに変換します。
新しく作成されたMaterial Library LOPでは、 Material VOP パラメータ内の*(アスタリスク)のパターンを使用して、このLOPの中にある子VOPノードとマッチングさせて、
そのマッチした子VOPノードをUSDマテリアルに変換します。
以下のUSDマテリアルを参照してください。
他の方法として、このLOPで Auto-fill Materials ボタンを使用することで、他のVOPネットワーク(例えば、/mat)からHoudini VOPマテリアルを取り込むこともできます。
Tips ¶
-
Material VOP パラメータにはパターンを使用することができます。
-
Material Path Prefix パラメータを使用することで、すべてのマテリアルに共通のUSDパスを定義することができます。 Material Path マルチパラメータインスタンスが絶対パスになっていないマテリアルは、その
Material Path Prefixパラメータを接頭辞として使用します。 -
Material Path Prefix パラメータを使用することで、親Prim(パスがスラッシュで終了している場合)、または、親パスとシェーダPrim名の接頭辞(パスがスラッシュで終了していない場合)を指定することができます。
-
すべてのマテリアルのインポートをやり直したい場合(例えば、新しいマテリアルを取得したい場合)、マルチパラメータの Clear ボタンをクリックしてから、再度 Auto-fill Materials ボタンをクリックしてください。
-
このノードはマテリアルを取り込むと同時にそのマテリアルを割り当てることができますが、マテリアルの割当は別のノード(
Material Linker LOPまたは
Assign Material LOP)を使用することを推奨します。この2つのオペレーションを別々にすることで、他のユーザーが理解しやすいネットワークを作成することができます。
-
Material Builderサブネット内で
Parameter VOPの Scope パラメータを Subnet Connector に設定することで、そのパラメータをパブリックインターフェースにプロモートさせることができます。 これらの入力は、
Edit Material Properties LOPを使用して編集することができます。
-
さらに、そのMaterial Builderサブネット上で Edit Parameter Interface を使用することで、USDマテリアルインターフェースをHoudiniライクにカスタマイズすることができます。 Material Library LOPは、
houdini:dialogScriptカスタムデータを作成します。 これによって、ユーザ側でSolaris用のMaterialインターフェースをもっと良く整理整頓することができます。Quick Materialsは、この仕組みを利用しています。
USDマテリアル ¶
Material Library LOPの中でVOPノード、それらのパラメータ、入力を使って USDシェーダ 、アトリビュート、入力コネクタを表現することができます。
例えば、Principled Shader VOPはKarmaマテリアルを表現し、Pxr Surface VOPはUSD RenderManシェーダを表現します。
Collect VOPは、レンダラー別にいくつかのシェーダを集めて、それらのシェーダすべてを含んだUSDマテリアルを作成することができます。
シェーダVOPsを互いに接続することができ、このノードは、それらの接続をUSDシェーダコネクションとして変換します(例えば、USD UV Texture VOPの出力をMtlX USD Preview Surface VOPの入力に接続することができます)。
Tip
このノードの中からマテリアルを取り込みたいのであれば、 Fill ▸ Material Network パラメータを.(単一ピリオド)に設定します。
Tip
Visualize VOP(Xホットキー)を使用してシェーダノードネットワークをデバッグすることができます。
指定したシェーダノードのシェーダトランスレータがVisualize VOPノードを介した出力値の視覚化に対応している場合、そのVisualize VOPに渡されるシェーダノードの値を使用してジオメトリがシェーディングされるようにUSD Materialが修正されます。
パラメータ ¶
Auto-generate Preview Surface Shaders
可能な場合に、LOPはUSD Preview Surface VOPPrimを生成します。 このシェーダタイプは、USD標準タイプの一部なので、すべてのUSDレンダラーで実装されているはずです。 そのため、レンダラーがオリジナルシェーダタイプを理解しなくても、このシェーダ(オリジナルシェーダの近似になるなることがあります)がどのレンダラーにも表示されるはずです。
Note
テクスチャを伴う場合、自動生成されるプレビューネットワークは、USD Texture Reader Primのalpha出力をUSD Preview SurfaceシェーダPrimのopacity入力に接続します。 Stormなどの一部のレンダラーでは、このopacityの制御を誤ってビューポートでアーティファクトを招くことが分かっています。 そのような場合を回避するには、このトグルを無効にしてから、そのネットワークの中で手動でUSD Previewネットワークを作成し、それを元のサーフェスシェーダと一緒にCollect VOPに接続してください。
Allow Shader Parameter Animation
これを無効にすると、すべてのUSD値がアニメーション不可と見なされ、デフォルトのタイムコードで値が編集されるようになります。 そして、このオプションを有効にすると、時間依存のシェーダノードパラメータは、デフォルトでないタイムコードでUSD値に変換される一方で、 時間に依存しないパラメータはそのままデフォルトのタイムコードで値が編集されるようになります。
Note
パラメータが時間依存なのかどうかチェックするのは負荷がかかり、シェーダ変換時間の大部分を占めてしまいます。 ほとんどのシェーダノードはアニメーションパラメータを持たないので、そのチェックに伴う負荷を節約するためにデフォルトでこのトグルは無効になっています。
Reference Material Render Vars into Render Products
このチェックボックスを有効にすると、このLOPは、Render Vars親スコープPrim(存在すれば)をグローバルRender Productsネームスペース(例えば、/Render/Products/Vars)で参照するようにします。
一部のシェーダトランスレータは、マテリアル内部にRender Vars Primsを作成し、それらをグローバルロケーションで参照するようにすることで、レンダラーはステージ全体を走査してマテリアルとそれ関係のRender Varsの情報を探すことなく、Render Product内にそれらのRender Vars Primsを含めることができます。 しかし、この挙動が望ましくないのであれば、このチェックボックスを無効にすると良いでしょう。
Parent Primitive Type
マテリアルパス内の中間Primsが存在しなかった場合、このノードはそれらの中間Primsを作成します。 これは、このノードが作成する中間Primsのタイプを制御します。
Material Path Prefix
これは、絶対マテリアルパスではないマテリアルパス(スラッシュから始まらないパス)の頭に自動的に付きます。 これによって、マルチパラメータで相対パスを指定して、この1個のパラメータでその共通のUSD親階層を設定することができます。
Material Network
取り込むマテリアルノードを含んだVOPネットワークのノードパス。
このノードは、 Auto-fill Materials ボタンがクリックされた時に、ここで指定されたマテリアルを検索します。
このノードの中のVOPサブネットを使用したいのであれば、ここを.(単一ピリオド)に設定してください。
Container Path
新しく作成されるマテリアルのデフォルトの親シーングラフパス。 Auto-fill Materials ボタンがクリックされた時、このパスがマテリアル名の頭に追加されて、マテリアルPrimのパスが取得されます。
Auto-fill Materials
このボタンをクリックすると、 Fill ▸ Material Network 内のマテリアルノード毎にマルチパラメータのインスタンスが自動的に作成されます。
このボタンは、 Fill ▸ Light Filter Network で指定されたネットワーク内でマテリアルフラグが有効になっているマテリアルVOPを検索します。 マテリアルフラグが有効になっているノードの数だけ、それ自身のマルチパラメータインタンスが作成されます。 各マルチパラメータインスタンスは、 Fill ▸ Container Path で指定されたUSDパスを使用して、そのノードから変換されたUSDマテリアルを作成します。
Number of Materials
取り込むマテリアルの数。 その数を設定するか、または、プラスとマイナスのボタンをクリックしてマテリアルのインポートを追加/削除します。
Include Only VOPs with Material Flag Set
Material VOP パラメータにパターンを指定した場合、これは、Materialフラグが有効になっていないノードを排除します。デフォルトは無効です。
Material VOP
シェーダまたはマテリアルを表現したVOPノードのHoudiniノードパス。 ここには、ノードパターンを指定することができます。パターンを指定した場合、このノードは、合致したすべてのノードをUSDマテリアルとして取り込みます。
Material Path
USD Primを作成するシーングラフパス。 ここに絶対パス(スラッシュから始まるパス)を指定すると、そのパスがそのまま使用されます。 ここに相対パスを指定すると、 Path Prefix パラメータのパスを基準にしたパスになります。
Assign to Geometry
これを有効にすると、新しく取り込んだマテリアルを以下の Geometry Path パラメータを使ってUSDジオメトリに割り当てることができます。
Geometry Path
Assign to Geometry パラメータが有効な時、新しく取り込んだマテリアルがこのパラメータでリストしたPrimsに割り当てられます。
| See also |