| On this page | |
| Since | 21.0 |
概要 ¶
レンダーパスは、(ベイク済みの結果ではなく)LOPのパラメータをUSDに取り込む方法です。
例えば、シーングラフの最終に4つの異なるRender Geometry Settings LOPを分岐させることで、4つの異なるUSDファイルをベイクすることができます。
その後、レンダリングしたいUSDファイル(s)を選択します。
あるいは、レンダーパスを使用することで、単一USDファイルに4つの異なる“レシピ”を埋め込むことができます。
レンダリング時に、適用したい“レシピ”を
huskに伝えることができます。
-
特定のレンダラーでは、マットオブジェクトやシャドウキャッチャーなどの追加レンダーパス設定をサポートしている場合があります。これらの設定は、このPrimに適用されているレンダラー固有のSchema APIに準拠したアトリビュートにエンコードされます。
-
レンダーパスPrimは、Scene Graph Tree内の
/Render下のどこかになければなりません。 -
Solaris デスクトップを使用すると、ビューポート右上コーナーにある1つ目のドロップダウンメニュー(デフォルトでは Persp に設定)からレンダーパスを選択することができます。そのメニューから Render Pass を開いて、どれかの項目を選択します。
-
USD Render ROPには、 Render Pass パラメータが用意されています。 これは、Scene Graph Treeパスを
RenderPassPrimに追加することができます。ただし、一度に1個のPrimしか使用できません!
Primsの作成 vs. 編集 ¶
このノードは、 USD Primsを直接的に作成または編集するノード のクラスに属します。 このようなノードは、 Create モード または Edit モードで動作します。 このモードは、 Create Primitives チェックボックスまたは Action ポップアップメニューで制御します。 Create モードでは、このノードは新しいPrimsを作成します。 Edit モードでは、このノードは、既存のPrim上のアトリビュートを変更します。 Editモード には2つのバリエーションがあります。
-
Edit は、
houdini:editableアトリビュートがfalseに設定されているPrimsを変更しません。 -
Force Edit は、このアトリビュートの有無や値に関係なくPrimを変更します。 このアトリビュートは、
Configure Primitives LOPを使用してPrim上に設定することができます。
USDアトリビュートに呼応したパラメータの左側には、このノードがアトリビュートを編集する 方法 を制御するためのポップアップメニューが付いています。
それだけでなく、接続可能なUSDアトリビュート(つまり、inputs:ネームスペース内にあるアトリビュート)には、アトリビュート入力とそのソース間の接続を切断できるメニュー項目があります。
パラメータ ¶
Sampling Behavior
このノードがクックされると、現行時間にただ1個のUSDタイムサンプルを生成するのではなく、たくさんのUSDタイムサンプルを生成することができます。
これは、このノードの後にCache LOPを接続することと同様ですが、こちらの方が非常に高速に評価され、他のノードからのデータをキャッシュ化しません。
これによって、以降のすべてのノードも時間依存にしてしまうノード時間依存を導入することなく、アニメーションデータをUSDで作成することができます。
その結果、一部のLOPネットワークの再生パフォーマンスを大幅に向上させることができます。
どのサンプリングモードでも、このノードのパラメータが時間と共に可変しない、且つ、ステージ上の他のタイムサンプルデータに依存していない場合、 呼応するアトリビュートに対して単一デフォルト値のみがUSD内で生成されます。 時間と共に可変するパラメータに対してのみUSDタイムサンプルが生成されます。
Sample Current Frame
現行時間に対して単一タイムサンプルが作成されます。
Sample Frame Range If Input Is Not Time Dependent
このノードの入力が時間依存の場合、このノードは、 Sample Current Frame モードと同様の挙動をします。 そうでない場合、このノードは、 Sample Frame Range モードと同様の挙動をします。
Sample Frame Range
Start/End/Inc パラメータを使用して、このノードのパラメータが評価される時間に対して複数の時間を生成し、それらの各時間においてアトリビュート毎にUSDタイムサンプルが作成されます。
Start/End/Inc
Sampling Behavior が Sample Frame Range の場合、このパラメータは、このノードで生成されるベースタイムサンプルの数と間隔を制御します。
このパラメータのデフォルト値は、@fstart、@fend、@fincです。
これらの値は、Houdiniを操作する時のグローバルHoudiniアニメーション設定の開始フレーム、終了フレーム、ステップサイズに相当します。
ROPノードを使用してフレーム範囲を生成した場合、これらの値は、実行したそのROPノードで指定された開始フレーム、終了フレーム、ステップサイズに相当します。
このデフォルトは、ディスクに書き出されるUSDファイルに、(Houdiniアニメーション設定に関係なく)ROPで指定されたフレーム範囲ちょうどのタイムサンプルを含めます。
Subframe Sampling
このノードで生成されたプライマリサンプル毎に、これらのパラメータは、そのプライマリサンプル時間付近に追加でサンプルを生成させることができます。 これは、プライマリサンプル時間だけでなく、カメラシャッターの開閉時間ちょうどにも正確なデータが存在することを保証するために非常によく使用します。
Shutter
プライマリサンプル時間を基準にシャッターの開閉時間を指定するのに使用されるメソッドを制御します。
Specify Manually
Shutter Open/Close パラメータの値で、プライマリサンプル時間を基準とした正確なオフセット値を指定します。
Use Camera Prim
Camera Prim パラメータで、シャッターの開閉時間が抽出されるカメラPrimのシーングラフパスを指定することで、プライマリサンプル時間を基準としたオフセット値を指定します。
Shutter Open/Close
Shutter モードが Specify Manually の場合、ここの2つのオフセット値がプライマリサンプル時間に追加され、シャッターの開閉時間が指定されます。 シャッターの開時間は0以下に、閉時間は0以上に設定してください。
Camera Prim
Shutter モードが Use Camera Prim の場合、ここには、入力ノードのステージ上のカメラPrimのシーングラフパスを指定します。 このPrimからShutter Open/Closeのアトリビュート値が読み込まれます。
Samples
プライマリサンプル毎に作成するサブフレームサンプルの数。 これらのサンプルは、シャッターの開時間から閉時間の間で均等に分布します。 このような均等な分布は、ちょうどプライマリサンプル時間にサンプルが作成される場合と作成されない場合があることに注意してください。
Always Include Frame Sample
有効にすると、ちょうどプライマリサンプル時間にサンプルを作成させることができます。 シャッター開時間とシャッター閉時間のどちらの Samples 値も既にプライマリサンプル時間でサンプルが配置されている場合、このオプションを有効にしても何の効果もありません。 そうでない場合、このオプションによって、追加でサンプルが作成されます。 つまり、プライマリサンプルあたりの実際のサンプル数は、 Samples で指定されたサンプル数よりも多くなる可能性があります。
Action
このノードが新しいPrimsを作成するのか、または、既存のPrimsを編集するのかどうか。
さらに、Force Editオプションを選択することで、このノードがPrims上のhoudini:editableアトリビュートを無視し、指定されたアトリビュートを常に編集するようにすることができます。
これは、houdini:editableアトリビュートがfalseに設定されたPrimsに対して警告を出してアトリビュートを設定しないEditモードとは対照的です。
Primitive Path
Create モードでは、これは、Prim(s)を作成するシーングラフ内の場所を制御することができます。
デフォルトは通常では/$OSになっています。
これは、ノードと同じ名前でルートレベルにPrimを作成します(例えば、/tube1)。
このデフォルト値は、名前の干渉を回避するのに役立ちますが、整理する観点では良くないです。
Primsを作成する時は、 Primitive Path が良い値になるように変更することを忘れないでください。
例えば、モデルを作成したノードの後でそのモデルに名前を付けるのではなくて、モデル内のジオメトリの後に名前を付けるようにしたいのであれば、/Modelsブランチ下にモデルを配置すると良いでしょう。
Create Primitives セクションには、新しいPrim(s)の作成方法に関する基本的なコントロールが含まれています。
Primitives
Edit モードでは、このノードには Primitives パラメータが表示されます。 このパラメータには、ノードが作用するPrim(s)を指定することができます。 テキストボックスの隣にある選択ボタンをクリックすることで、 Scene Graph Tree からPrimsを選択することができます。 コレクション内のすべてのPrimsのマッチングといった高度なマッチングには、プリミティブパターンも使用することができます。
Initialize Parameters
このノードが何も変更を適用しないようにするために、すべてのコントロールメニューパラメータの状態を Do Nothing 変更します。 さらに、最初の Primitives マッチから各プロパティの現行値を取得し、それに該当するパラメータの値を同じに設定します。 つまり、パラメータのコントロールメニューを Set or Create モードに変更すると、そのプロパティに現行値が設定されるので、新規に値を設定するよりも既存の値に変更を適用する方が簡単です。 レンダリング固有のタブを持つLOPで Rebuild Render-Specific Parameters を選択すると、そのレンダリング固有のタブのすべてのパラメータがそのLOPのデフォルト値にリセットされます。 シーン全体でそれらのパラメータをリセットしたいのであれば、トップメニューの Render メニューから Rebuild All Render-Specific LOP Parameters を選択すると良いでしょう。
このセクションは、ノードがPrimsを作成している時にのみ表示されます。
例:
-
空っぽのステージ上で
/world/objects/cube1に新しくCube Primを作成したい場合: Primitive Specifier を__Define__ 、 Parent Primitive Type を Xform に設定します。 -
/world/objects/sphere1にあるSphereのradiusをオーバーライドしたい場合: Primitive Specifier を Over 、 Parent Primitive Type を None に設定します。これによって、既存の親PrimsのPrimタイプは、このノードによって変更されないようにすることができます。
Primitive Count
作成するPrimsの数。
Primitive Type
作成するすべてのPrimsにこのタイプを設定します。
Primitive Kind
作成されるすべてのPrimsをこのKindに設定します。
Primitive Specifier
新しくPrimsを作成する時に使用するUSDオペレータ。
Define
完全に新規でPrimを作成します。まったく新しいPrimを作成したい場合、または、既存のPrimを置換したい場合に、これを使用します。
Over
既存のPrimをオーバーライドします。このPrim上で明示的に作成されていないアトリビュートは、下位レイヤの既存のPrimから値が取得されます。
Class
Primクラスを定義します。通常では、これは、よほどUSDを使い込んでない限りは必要ありません。
Class Ancestor
Primitive Specifier が Define または Over の場合、このパラメータは、いくつかの親PrimsのSpecifierをClassで編集します。
これによって、別々に2個のノードを使用することなく、 Class 内で Over または Define を作成するのが簡単になります。
Ptimive Specifier が Class の場合、Prim階層全体が既に Class Primsとして編集されているので、このパラメータは無効です。
Parent Primitive Type
Primitive Paths のパスに何も親が存在しない場合、このノードが自動的に親を作成します。この場合、このタイプの親ノードを作成します。
Standard ¶
Render Visibility Collection
このレンダーパスに表示したいPrimsのUSDコレクションを指定します。 デフォルトでは、このコレクションにはシーン内のすべてのPrimsが含まれます。 一部のPrimsのみを表示させるには、2つの方法があります。 1つは、ルートPrimを含めるオプションを有効にしたまま、 Exclude リレーションシップでPrimsを指定する方法です。 もう1つは、 Include Root を無効にして、表示したいPrimsの明示的なリストを Include リレーションシップで指定する方法です。
Camera Visibility Collection
このレンダーパスにおいて、カメラから直接見えるようにしたいPrimsのUSDコレクションを指定します。 このコレクションに含まれていないオブジェクトは、影、反射、屈折などの他のライトパスには引き続き影響します。 このコレクションには、デフォルトでシーン内のすべてのPrimsが含まれます。 一部のPrimsのみを表示させるには、2つの方法があります。 1つは、ルートPrimを含めるオプションを有効にしたまま、 Exclude リレーションシップでPrimsを指定する方法です。 もう1つは、 Include Root を無効にして、表示したいPrimsの明示的なリストを Include リレーションシップで指定する方法です。
Prune Collection
レンダリングから完全に除外したいPrimsのUSDコレクションを定義します。 一部のレンダラーでは、これによってシーンからPrimsが完全に除去されます。 これはレンダリング効率を向上させることができるものの、PrimのPrune状態を変更することは、単にそのレンダリング可視性を変更するよりも負荷がかかることが多いです。
Matte Collection
マットオブジェクトとしてレンダリングしたいPrimsのUSDコレクションを定義します。 マットオブジェクトはアルファ値がゼロでレンダリングされます。 デフォルトでは、シーン内のすべてが通常通りにレンダリングされるように、このコレクションは空っぽになっています。
Collection Options ¶
上記の各コレクションには、プライマリパターンパラメータに加え、コレクションを設定するための以下のパラメータが利用可能です:
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある Reselect ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この Reselect ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(
/path/to/prim.collection:‹name›)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Scene Graph Treeから特定の(または複数の特定の)USD Prim(s)をウィンドウまでドラッグ・アンド・ドロップすることで、それらのUSD Prim(s)のみに対して検証を実行することができます。
Note
トランスフォームハンドルがコンテキストを認識できるようにするには、このパラメータを露出させる必要があります。 それをしなかった場合、ハンドルを適切に配置することができません。
Pattern Is USD Path Expression
コレクションを、Include/Excludeするオブジェクトをハードコーディングで指定した明示的なリストではなくUSDパスエクスプレッションとして作成します。
USDパスエクスプレッションは、必要に応じてそのエクスプレッションを合成されたステージ上のPrimsに対して比較することで評価されます。
この手法は、Include/Excludeするオブジェクトを指定した明示的なリストよりも処理が遅くなりますが、その内容がより動的なコレクションにすることができます。
例えば、//chairパスエクスプレッションは、コレクション作成時にchairという名前のPrimが存在していなくても、合成されたステージ内でchairという名前のPrimをすべて検出します。
USDパスエクスプレッションを使用した場合、 Exclude Primitives パラメータは意味がなくなるので無効になります。
USDコレクションは、Include/Exclude形式、または、パスエクスプレッション形式のどちらかを使用しなければなりません。
Excludeに相当するエクスプレッションは、-演算子で記述することができます(例えば、//mountain - /root/mountainは、/root/mountain以外のmountainという名前のすべてのPrimsにマッチします)。
Add Exclusions
コレクションのExcludeリレーションシップのPrimsを指定するためにさらに別のプリミティブパターンパラメータを表示します。 USDは、合成時にIncludeリレーションシップ内のPrimsリストからExcludeリレーションシップのPrimsを除外して、最終的なコレクションの内容を決定します。 このオプションが無効の場合、コレクションのExcludeリレーションシップは、このノードによって変更されません。
Exclude Primitives
プライマリコレクションパラメータと同じ形式を用いて、コレクションから明示的に除外したいPrimsを指定します。
Icon
Scene Graph Treeのコレクションパネル内でコレクションに関連付けたいアイコンまたは画像ファイルのパス。 このアイコンパスは、コレクションのIncludeリレーションシップのカスタムデータ辞書に格納されます。
Expansion Rule
選択されたPrimsの子Primsをコレクションに含めるかどうかを指定します。
No Expansion
Includeに含まれている(且つ、Excludeに含まれていない)パスのみがコレクションに属します。(explicitOnly )
Expand Primitives
Include以下(且つ、Excludeに含まれていない)すべてのPrimsがコレクションに属します。(expandPrims )
Expand Primitives and Properties
Expand Primitives と同様ですが、マッチしたすべてのPrimsのプロパティもすべて含みます。
Pixarのドキュメントによれば:“この機能の具体的な使用例はまだ明確ではありませんが、非常に多くのUsdObjectsを簡潔にキャプチャするために使用できます。”
Allow Instance Proxies in Collection
インスタンスプロキシとは、インスタンス化可能なPrims下にあるPrimsのことです。 一部のレンダラー(例えば、Karma)では、レンダーパスコレクション内でインスタンスプロキシPrimsをターゲットにすることができます。 他のレンダラー(例えば、Houdini VK)ではこの機能をサポートしていない場合があり、その場合には、これらのコレクションで指定されたインスタンスプロキシPrimsは、このパスのレンダリングに何も影響を与えません。
その他のパラメータ ¶
Input Passes
このパスより前にレンダリングする必要があるRender Pass Primsのリスト。 例えば、Pass Aがテクスチャを生成し、そのテクスチャがPass Bのレンダリングに使用される場合には、そのPass AのPrimを指定します。
Pass Type
カスタムパイプライン内でレンダーパスのカテゴリを区別するために使用可能な文字列。
Command
このパスのレンダリングを生成するために実行するコマンド。
カスタムパイプラインでは、ジョブ投入コードがこのアトリビュートを使用することで、レンダリングを起動することができます。
このアトリビュートは、個々のコマンドライン引数となる文字列の配列で指定します。
コマンドには、ジョブ投入時に適切に置換される変数を含めることができます。
例えば、{fileName}を使用して File Name アトリビュートの値を指定することができます。
File Name
このパスのレンダリングに必要なレンダリングPrimsやその他の情報を含んだアセット。 このフィールドは、レンダーパスを記述したUSDファイルが実際にレンダリングを生成するファイルと異なる場合に役立ちます。
Render Source
このパスを生成するためにレンダリングすべきRenderSettingsPrim。
File Name が設定されている場合、レンダリングソースPrimがそのファイル内で見つかる必要があります。見つからない場合、レンダリングソースPrimは、このRenderPassPrimを定義したステージと同じステージ上になければなりません。
Denoise
このレンダーパスに対してノイズ除去を適用するべきか指定します。