On this page |
ディスクからジオメトリをレンダリング ¶
IFDが作成されると、ジオメトリがサーフェスオペレータからMantraへ送られます。 それゆえ、HoudiniはIFD生成中に、ある時点でメモリ内にジオメトリのコピーを持つ必要があります。 さらに、Houdiniは全てのデータをIFDストリームに書き込む必要があり、Mantraは全てのデータをIFDストリームから読み込む必要があります。 大抵の場合、ジオメトリはそんなにメモリを占有しませんし、ジオメトリの読み込み/書き込みの負荷はさほど高くありませんので、心配いりません。
しかしながら、中には禁止事項があります。 例えば、極端に大きいジオメトリファイルをレンダリングすることです。 Houdiniで強制的にジオメトリを全てのフレームで読み込みおよび保存をすると、メモリ的にも時間的にも高くつきます。 また、ネットワークレンダリング(MantraにおけるHオプション)を行なうときにも、サーバーのMantraのメモリ使用量が大きくなるので、トラブルが起きる可能性があります。
レンダリング時間とメモリ消費を軽減する方法としては、ジオメトリファイルをディスクに保存し、ジオメトリをディスクから読み込むようにMantraに指示することです。 それでもMantraはジオメトリを読み取らなければなりませんが、埋め込まれたジオメトリを処理する代わりに、ジオメトリをディスクから直接読み込むことができます。
-
SHOPネットワーク内で、
Mantra: Delayed Load
ジオメトリシェーダを作成してください。 -
シェーダのMainタブの File 名を設定し、ディスクジオメトリファイルを指定してください。
-
Mantra: Delayed Load
ジオメトリシェーダの IFD Bounds タブで、 Bounding Box を No bounding box required に設定します。 -
オブジェクトの Render タブの Geometry サブタブで、 Procedural Shader フィールドにシェーダを指定してください。
Note
遅延ロードインスタンスに対してディスプレイスメントシェーダを使うのはなるべく避けてください。 ディスプレイスメントは、強制的にMantraをインスタンス毎に別々のジオメトリを作成させるので、参照のメリットが少なくなります。 どうしてもディスプレイスメントを使わなければならないのなら、マイクロポリゴンレンダリングを使うのが良いです。 その理由は、レンダリングが完了した時に変位させたジオメトリをレンダラーが破棄できるからです (Mantraを理解するを参照してください)。
効率化の改善 ¶
Bounding Box を No bounding box required に設定すると、Mantraは、ディスクのジオメトリファイルから境界ボックスを読み取ろうとします。 もしジオメトリファイル内に境界ボックス情報が見つからなかった場合には、ファイル全体が読み込まれます。 これでは、ジオメトリが完全に隠れていたり、スクリーン外にある場合には、レンダリング速度およびメモリ使用量の両方において非常に効率が悪いです。 デフォルトでは、Houdiniのジオメトリファイルは、この境界ボックス情報と一緒に書き出されます。
Mantra: Delayed Load
ジオメトリシェーダの IFD Bounds タブの Bounding Box フィールドには2つの異なるオプションがあります。
Explicit Bounds
Min Bounds および Max Bounds フィールド内に境界ボックス境界を明示的に設定することができます。
Specified By SOP’s Bounding Box
ジオメトリの境界ボックスを使います。このオプションは、一連のディスクファイルの境界ボックスをアニメーションさせる時に便利です。
Note
File SOPを使ってディスクファイルから完全なジオメトリを読み込むのではなく、プロキシ(代用)ジオメトリを使ってください。 これにより、Houdiniのメモリ使用量を小さく抑えることができます。
モーションブラー ¶
このプロシージャルには、モーションブラーをレンダリングする2つのモードがあります。 1つ目のモードは、現行のモーションブラーの設定に関係なく、モーションブラー情報を明示指定します。 2つ目のモードは、ジオメトリファイルの適切なセットを読み込み、現行のモーションブラー設定に準拠します。
明示的モーションブラー ¶
モーションブラーモードがExplicitの時、このプロシージャルはモーションブラーの1セグメント(2つのジオメトリサンプル)のみに対応し、カメラシャッタータイムは無視されます。 Blur File の変形ジオメトリを使用するのか、 Use Velocity Motion Blur を有効にするのかを指定できます。
Bluer File を使うと、プロシージャルは元のファイルからブラーファイルまでブラーを行ないます。
ブラータイムをt
と仮定すると、ブラーは以下のように計算されます。
P' = lerp(P, P_blur, t * shutter)
同様に、ベロシティブラーを使う場合、ブラーは以下のように計算されます。
P' = lerp(P, P + v / FPS, t * shutter)
シャッター情報の使用 ¶
モーションブラー設定を使う時、必要なのはジオメトリファイルシーケンスを指定することだけです。
これを実行するには、プロシージャルは、フレーム番号マーカー%F
が付いたファイル名を必要とします。
また、このマーカーは、$F
などのゼロ埋め値をとることができます。
例えば、/tmp/mymodel.%F4.bgeo
は、フレーム1で/tmp/mymodel.0001.bgeo
を読み取ろうとします。
ファイルの紛失などが起こると、Mantraが警告を発するので、ジオメトリファイルの前後を含む、レンダリングされる全てのシーケンスを網羅した1連のジオメトリを指定することが重要です。
詳細は、 motion blurヘルプを参照してください。
パラメータ ¶
Main ¶
File
ジオメトリファイル。
Frame Offset
File パラメータの評価時に展開される%F
シーケンスに加算するフレームオフセットを指定します。
Motion Blur Style
レンダリング実行中のモーションブラーの挙動を指定します。
None
このプロシージャルでは、モーションブラーはレンダリングされません。
Set Explicitly
Use Velocity Motion Blur 、Blur File および Shutter で明示的なモーションブラーデータを指定します。
Use Shutter Information
プロシージャルは、現行のモーションブラーの設定に基づいて、正しいジオメトリファイルを読み込んで、モーションブラーのレンダリングを行ないます。
Use Velocity Motion Blur
モーションブラースタイルが明示的な場合、このオプションは、ジオメトリのv
アトリビュートで定義されているように、
Velocityモーションブラーを使っているジオメトリをレンダリングするようにプロシージャルに指示します。
この場合、 Blur File オプションは無視されます。
Blur File
変形モーションブラージオメトリファイル。
Shutter
この値を使えば、モーションブラーのエフェクトを減退あるいは誇張させることができます。1.0の値は、シャッター持続時間全体に相当します。
Material Archive
マテリアルを.hipファイルで定義しなくてもアーカイブ内でマテリアルを適用することができます。 これらのマテリアルは、 Mantra Archive Render Driverを使って生成することができます。
IFD Bounds ¶
Bounding Box
境界ボックスコントロールでは、参照ジオメトリ用の境界ボックスを指定することができます。 この境界ボックスが“on screen”の場合のみ、Mantraは参照ジオメトリを読み込みます。 Bounding Box を No bounding box required に設定することができ、その場合Mantraは常に気にすることなく参照ジオメトリを読み込みます。 また、 SOP Bounds パラメータのSOPの境界ボックスを参照することで、境界ボックスを指定することもできます。
SOP Bounds
参照したい境界ボックスのジオメトリ。
Min Bounds
Explicit Boundsに設定した時の最小境界ボックスの寸法。
Max Bounds
Explicit Boundsに設定した時の最大境界ボックスの寸法。
Note
このプロシージャルには、境界ボックスの指定が必要です。モーションブラーしたジオメトリを生成する時、その境界はブラーしたジオメトリも同時に囲まなくてはなりません。