On this page | |
Since | 11.0 |
ボリュームは非常に大きなサイズになることがあります。 Volume Compress SOPは、ボリュームデータに対してサイズ/品質のバランスを簡単に決めることができます。
また、単純なマスキングを行なうことで、マスクボリュームに応じてボリュームの興味のない箇所を簡単にゼロに設定することができます。 例えば、非ゼロの密度フィールドから2,3ボクセル以上離れたVelocityベクトルはMantraでは不要です。 つまり、まず Use Voxel Radius をオンに、 Reduction を Maximum に設定したVolume Blurを使用すると、目的の安全領域で密度フィールドを拡張することができます。 そして、 Mask Minimum をゼロに設定して、0以下の値に拡張された密度のボクセルをゼロに設定します。
Note
現在のところ、このノードは、標準のHoudiniボリュームでのみ動作します。 VDBでは動作しません。
パラメータ ¶
Source Group
圧縮とマスクをするボリュームプリミティブ。
Compression
No Recompress
圧縮の設定を変更しても、タイルは再圧縮されません。
Note
後のオペレーションがタイルへ書き出す場合は、新しい設定でタイルが再圧縮される場合があります。
Recompress
場合によって新しい圧縮設定が設定できれば、各ボリュームのタイルがもっと圧縮可能かどうかテストされます。 圧縮可能であれば、圧縮されます。
Uncompress
すべてのタイルが完全にそのままのfloatデータに展開されます。 この設定は、たくさんのメモリを使用しますが、特別な場合の定数タイルがありません。
Uncompress Non-Constant
定数タイルでないすべてのタイルが完全にそのままfloatデータに展開されます。 Uncompress オプションよりも役に立ちます。その理由は、定数タイルはサポートしやすい傾向があるからです。 これは、圧縮オプションが少ない他のプログラムや別バージョンのHoudiniで読まれる.bgeoを必要とする場合にのみ非常に役に立ちます。
Update Compression Settings
ボリューム圧縮オプションは、これらの値に更新されます。
Constant Tolerance
ボリューム内のタイルを定数タイルに圧縮する時、これはタイルが定数かどうか判断するために使用する許容値です。 ゼロは可逆圧縮のみを許可します。
Quantization Tolerance
タイルの値を量子化することでタイルを圧縮する時、これは、その許容値です。 この値は、ある程度の品質をディザリングで償うことができるので、定数タイルよりも大きい値を指定することができます。 ゼロは量子化を無効にします。
Dithering
ボクセルをより低いビット深度に量子化する時、いくつか失った情報は、ノイズを量子化前のボクセルに追加することで償うことができます。 これは、ボクセル内のビット深度を空間的な解像度に置き換えていると考えることができます。
ボリュームを表示用に統合することがよくありますが、ディザリングは、生成されるボリュームの結束化を回避して、ボリュームの元のウェイトを保持することができます。
Dithering を None に設定すると、単に閾値化処理を行ないます。 Dithering を Ordered に設定すると、各タイルに対して定数ディザリングマトリックスを使用します。
Use 16bit Float
32bit floatをまだ計算に使用していても、それらをボリュームに記録する時には、16bit floatに減らされます。 このオプションは、若干計算負荷がかかり、floatの精度が悪くなりますが、メモリ消費量が半分に減ります。
Mask Group
2番目の入力のボリュームがマスクとして扱われます。 マスクの内側にないボクセルが圧縮前にゼロに設定されます。 すべてのゼロタイルは非常によく圧縮するので、マスクが疎らになっていると、このオプションは、メモリ使用量を大幅に削減することができます。
Maximum モードに設定したVolume Blurを使えば、新しいゼロタイルがレンダリングに流れ出ないように安全領域を拡張することができます。 最低でも1つのPadding(余白)のボクセルを使うべきです。
Mask Minimum と Mask Maximum の両方を設定すると、両方がTrueの場合にボクセルがマスクされます。
Mask Minimum
厳密には最小値よりも大きいマスクプリミティブ内の値のボクセルがマスクされるので、この値はゼロに設定しません。
Mask Maximum
厳密には最大値よりも小さいマスクプリミティブ内の値のボクセルがマスクされるので、この値はゼロに設定しません。
Invert Mask
マスクの意味を反転します。つまり、マスクの内側のボクセルがゼロになります。
Examples ¶
volumecompress Example for Volume Compress geometry node
このサンプルでは、Volume Compress SOPで外観をあまり影響を与えずにボリュームのメモリ使用量を減らす方法を説明しています。
See also |