On this page |
通常、ジオメトリデータはそのジオメトリの性質を完全に表現するために特定のフォーマットが必要です。 Geometry ROPは、たくさんのプラグインとネイティブフォーマットをインターフェースを介してやりとりすることで、色々な方法でジオメトリを保存できるようになっています。 しかし、一部のシステムではRawデータのみ必要な場合があります。 そのようなシステムのために、このGeometry Raw出力ドライバでは、Pointアトリビュート、Detailアトリビュート、ボリュームデータを他のプロセスで読み込めるように直接ファイルにダンプすることができます。 これには、その書き込み方法を慎重に正確に指定しなければなりません。
パラメータ ¶
Save to Disk
直近のコントロール設定を使ってジオメトリをディスクに保存します。
Save to Disk in Background
別のHoudiniコピーをバックグラウンドで起動し、そのコピーに対してジオメトリをクックして保存するように指示します。
これによって、作業を続けつつ、そのジオメトリの保存が完了した時にその.raw
ファイルを読み込むことができます。
Controls…
レンダリングする前にレンダリングパラメータを調整できるようにコントロールダイアログを開きます。
Valid Frame Range
このレンダーノードが現行フレームまたは Start/End/Inc で指定された画像シーケンスのどちらを出力するのかを制御します。
Render Current Frame
現行フレームのみをエクスポートします。
Render Frame Range
Start/End/Inc で指定された範囲のフレームをエクスポートしますが、その範囲内のフレームが参照しているフレームのエクスポートも許可します。
Render Frame Range Only (Strict)
Start/End/Inc で指定された範囲のフレームのみをエクスポートします。 その範囲内のフレームが参照している他のフレームのエクスポートを許可しません。
Start/End/Inc
レンダリングするフレーム範囲(開始フレーム、終了フレーム、増分)を指定します。どの値も浮動小数点値を指定することができます。開始フレームと終了フレームは範囲に含まれます。
これらのパラメータは、出力ドライバのローカル変数の値を决めます。
$NRENDER
出力ドライバでレンダリングされるフレームの数。
$N
レンダリングされている現行フレーム(これは1から始まり$NRENDER
で終わります)。
Render with Take
レンダリング時に特定のテイクの設定を使用します。 レンダリング時に現行テイクを使用する場合は Current を選択します。
SOP Path
書き出したいSOPノード、オブジェクト、SOPサブネットのどれか。
Output File
バイナリデータの保存先のファイル。
拡張子は重要でなく、そのファイルを読み込むシステム次第です。
定義されていないフォーマットであることを明確にするために、.raw
を使用することが多いです。
Transform
ジオメトリを書き出す前にワールド空間に変換するかどうかを指定します。
File Layout ¶
Endianness
Rawデータの バイト順 。 すべてのデータが1バイトでない限り、そのデータが作成された方法に基づいて、これを設定する必要があります。 データを作成したプログラムが採用している“エンディアン”を調べること以外で、これを何に設定するべきか知る術はありません。 ただし、“Little”(デフォルト)が最近のシステムでよく使用されています。
Little (Intel)
マルチバイト数値内の 最下位(Least Significant) バイトが最初になります。 これは、最近のアーキテクチャ(IntelやARM)の通常のメモリレイアウトに一致するので、使用頻度が高いです。
Big (Network)
マルチバイト数値内の 最上位(Most Significant) バイトが最初になります。 これは、場合によっては“ネットワーク順序”と呼ばれ、ネットワークプロトコルでは一般的ですが、それに限りません。
ガリバー旅行記で、そのタイトルの名前の主人公が小人の国に漂流した話を皆さん知っていると思いますが、 その島の国々がなぜ戦争をしていたのかを思い出せないのではないでしょうか。 これは、卵を割る時に、小さい方から割るべき派と大きい方から割るべき派に対立したのが原因でした。
コンピュータ科学の世界でも同様の問題が起こりました。 マルチバイト値を格納する時、あなたは大きい部分を先に格納するのか?それとも小さい部分を先に格納するのか?
Number of Blocks ¶
Block #
ブロックの名前。 これは、DetailブロックまたはPointブロックではアトリビュート名となり、Volumeブロックではボリューム名となります。 Zeroブロックに関しては、ブロックを出る理由をコメントするのに役立ちます。
Import Target
ブロックの情報のソース。
Zero
ブロック全体が0で埋められます。
Float
指定した浮動小数点値がブロック全体で繰り返されます。
Integer
指定した整数値がブロック全体で繰り返されます。
Detail Attribute
ブロック名にマッチしたDetailアトリビュートがブロックに保存されます。
Point Attribute
ブロック名にマッチしたPointアトリビュートがブロックに保存されます。
Volume
ブロック名にマッチしたボリュームがブロックに保存されます。
Tuple Size
Detailアトリビュート/Pointアトリビュートで必要なサイズ、または、ボリュームのタプルサイズ。
Type
このブロックに格納されるデータのタイプ。
Float
浮動小数点値。
Integer
整数値。
Precision
各値が格納されるビット数。
8-bit
整数の場合、これは0から255の符号なしの値です。 浮動小数点の場合、0から255の符号なしの値は、0から1の浮動小数点値に呼応します。
16-bit
整数の場合、これは-32768から32767の符号付きの値です。 浮動小数点の場合、これはbinary16またはbfloat16のどれかです。
32-bit
整数の場合、これは符号付き32ビット値です。 浮動小数点の場合、これはbinary32浮動小数点表現です。
64-bit
整数の場合、これは符号付き64ビット値です。 浮動小数点の場合、これはbinary64浮動小数点表現です。
Use BFloat16
通常の16ビット浮動小数点表現(Halfと呼ぶことが多いです)で、binary16です。 これは、値の範囲と精度の両方を削減して浮動小数点をもっと少ない容量で格納する方法として、OpenEXRやOpenVDBで使用されており、Houdini内部でも使用されています。
BFloat16は、binary32の切り捨てバージョンで、値の範囲はそのままに、精度を8ビットに削減されています。 これは機械学習でよく使用されています。
Collate with Previous
Pointブロックをディスクに保存する時、他のPointブロックと交互配置(インターリーブ)するか、独自の連続ブロックを形成するのか指定することができます。 そのブロックが丁合(Collated)されるものだとマークされていない場合、独自の連続ブロックを保存します(場合によっては、Collatedとマークされている連続ブロックを含みます)。 そのブロックが丁合(Collated)されるものだとマークされている場合、丁合されるすべてのブロックは、各ポイントと次のポイントを交互に順々に書き出されていきます。
Volume Order
バイナリ数値の エンディアン と同様に、ボリュームデータをX軸を最初に置くべきか、Z軸を最初に置くべきかの対立があります。 ボリュームデータを読み込む場合、そのデータを作成したプログラムで使用されている規則に基づいて、これを設定する必要があります。
ZYX
Z軸は最も外側のループです。 ファイル内の連続エレメントは、連続したX値です。 これは、Houdiniの内部ボリュームレイアウトに合致します。
XYZ
X軸は最も外側のループです。 ファイル内の連続エレメントは、連続したZ値です。 これは、OpenVDBの内部ボリュームレイアウトに合致します。
Float Value
Floatブロックの場合、この値がタプルサイズの回数だけ書き出されます。
Integer Value
Integerブロックの場合、この値がタプルサイズの回数だけ書き出されます。
Render Settings ¶
Skip Existing Frames
既存フレームのレンダリングをスキップします。このパラメータには3つの値があります。
Overwrite existing frames
このオプションは、ディスク上のファイルの有無に関わらず、すべてのフレームをレンダリングします。
Skip frames that exist
vm_picture
パラメータに該当するディスクファイルが存在すれば、そのレンダリングを実行しません。
Skip frames that are valid images
ディスクファイルが存在すれば、レンダリングを実行する前に、その画像の整合性をチェックします。 このオプションは、画像の読み込みに負荷がかかりますが、完全にレンダリングされなかった画像を再レンダリングします。
Initialize Simulation OPs
すべてのシミュレーションOPを強制的にリセットします。 これには、DOP NetworkやPOP SOP、およびそれらの結果をキャッシュ化する他のOPを含みます。
これはシミュレーションをレンダー出力する最も安全な方法です。 シミュレーションをゼロの状態から開始し、異なるパラメータで実行した可能性のある部分的なシミュレーションがすべて破棄されるからです。
Alfred Style Progress
ファイルの書き込みが何パーセント完了したかを示す値です。 これは、PixarのAlfredレンダーキューが求めるスタイルになります。
Report Network Use
このジオメトリ出力により実行された処理の間に、分散シミュレーションプリミティブが送信または受信したバイト数がプリントされます。
これは、例えばファイルをNFSマウントへ保存するといった使用方法はトラックしません。 Gas Net Exchange Border DOPのようなノードのネットワークコミュニケーションのみをトラックします。
Save Retries
ディスク書き込みエラーによりジオメトリをディスクに保存できない場合、Houdiniでは普通、出力ノードがすぐにエラーになります。 保存エラーが回復できないような不正パスを表しているほとんどの場合で妥当といえます。 しかし、ネットワークの問題でファイルが保存できない場合もあります。 保存リトライ数がゼロでない場合、Houdiniはこのパラメータで指定された回数を再保存しようとします。 毎回、保存エラーのコンソールへ出力が行なわれ、ネットワークの回復を期待して5秒間の待機があります。
Save in Background
1つ以上のフレームを保存する場合、バックグラウンドスレッドに保存します。 これにより、ファイルが大きなサイズでも保存が速くなりますが、保存が完了するまで出力ジオメトリが保持されるため、メモリの使用量が多くなるかもしれません。
Scripts ¶
様々な実行ステージで実行されるスクリプトコマンドを指定することができます。 スクリプトパラメータに対して選択されたエクスプレッション言語によって、このコマンドがHScriptなのかPythonなのか判断されます。
実行する前に、このノードが自動的にグローバル現行ノードとして設定されます。
ファイルからステートメントを実行したいのであれば、
.cmd
拡張子(言語が HScript に設定されている場合)または.py
拡張子(言語が Python に設定されている場合)が付いたファイルのパスを指定してください。
スクリプトには追加で引数を指定することもでき、シェルと同様の方法で引数が解析されます。
Pre-Render Script
任意のレンダリング前に、このスクリプトを実行します。
Pre-Frame Script
各フレーム前に、このスクリプトを実行します。
Post-Frame Script
各フレーム後に、このスクリプトを実行します。
Post-Render Script
すべてのレンダリング後に、このスクリプトを実行します。
Post-Write Script
各フレームのデータがディスクへの書き込みを終了した後に、このHScriptを実行します。 これは、それに該当するPost-Frame Scriptの常に後で、Post-Render Scriptの常に前ですが、それ以外の順番は未定義です。 バックグラウンドでの保存を有効にした時、これはファイルの保存が終了するまでスクリプトのアクションを遅延させることができます。
ローカル変数 ¶
N
レンダリング中のフレーム。
NRENDER
レンダリングするフレームの総数。
See also |