On this page |
IsoOffsetノードは、指定した入力ジオメトリから陰関数を構築します。 そして、その陰関数を使って、元のサーフェスから一定オフセットのシェル(外殻)を作成します。
四面体メッシュモードを使えば、シミュレーションで使用する均一にサンプリングされた四面体配列が作成されます。
ボリューム出力モードは、陰関数をそのままボリュームプリミティブとして直接出力することができます。
パラメータ
Output
陰関数で以下のタイプの出力を制御します。
Iso Surface
指定した陰関数のオフセットでポリゴンメッシュを作成します。
Fog Volume
オブジェクトの内側を1、外側を0に設定したボリュームプリミティブを作成します。 境界セルの値は、それらの0と1間の補間値になります。
SDF Volume
ボリュームプリミティブはSigned Distance Fieldになります。 オブジェクトの内側には、サーフェス上の一番近いポイントまでの距離を示したマイナスの数値が記録されます。 オブジェクトの外側には、プリミティブ上の一番近いポイントまでの距離を示したプラスの数値が記録されます。 GL表示では、それらは外側を不透明にレンダリングするので、反転させて表示しようとします。 SDFはRBD SolverとFluid Solverでも使われます。詳細は、Volume Sample VOPのヘルプを参照してください。
Tetra Mesh
オブジェクトの内側を四面体で満たします。 その結果のメッシュは、デフォーマやソフトボディで使用することができます。
Tetra Type
Tetra Skeleton
四面体のメッシュは、フィールドの"内側"に構築されます。 この標準メッシュは、ソフトボディダイナミクスでの使用に適しています。
Note
四面体はフェースを共有しているので、法線がうまく定義されていません。
Tetra Solid
個々の四面体のメッシュは、フィールドの"内側"に構築されます。 これらの四面体はポイントやフェースを共有していないので、色々な破壊オペレーション用に分割することができます。
Cubes
フィールドの内側に個々の立方体のメッシュを構築します。これらの立方体はフェースやポイントを共有していないので、破壊オペレーション用に分割することができます。
Mode
SDF(符号付き距離フィールド)の生成に使用するメソッドを決めます。
Ray Intersect
光線を様々な方向でジオメトリに放射して、サーフェスの場所を判断します。 その結果のフィールドに符号が付き、0のオフセットからアイソサーフェスが生成され、それが内側と外側を分けます。
Meta Balls
Ray Intersect メソッドは、光線を送信することで、ボクセルがオブジェクトの内側または外側のどちらにあるのか判断します。 Ray Intersect メソッドは、漏れなどの問題が発生する可能性があります。 メタボールの集合体からSDFを構築するのであれば、メタボールフィールドを見ることで内側/外側を判断することができます。 つまり、このメソッドを使うことです。このメソッドを使う時は、 Laser Scan はほぼ不要です。
Minimum
サーフェスまでの正確な最小ポイントを見つけます。これは遅いですが正確です。 その結果のフィールドに符号が付かないので、ジオメトリにシェル(外殻)のみを生成することができます。 必ず0よりも大きいオフセットを指定してください。
Point Cloud
入力ジオメトリのポイントだけでフィールドを構築します。 ポイントに法線があれば、その法線で符号が決まります。法線がなければ、フィールドは Minimum のように符号が付きません。 ジオメトリから良いポイントの集合体を作成する方法は、Scatter SOPを使うことです。
Implicit Box
暗黙表示にジオメトリの境界ボックスを使います。
Implicit Sphere
暗黙表示にジオメトリの境界球を使います。
Implicit Plane
ジオメトリを平面で表現します。
Volume Sample
入力gdp内のボリュームがすべてサンプリングされて、それらの合計値を使って、SDF(符号付き距離フィールド)を初期化します。 その後は訂正処理がされないので、入力がなければ、その結果は実際にはSDF(符号付き距離フィールド)にはならない場合があります。
Rebuild Volume Sample
Volume Sampleと同じ挙動ですが、後で訂正パスが処理されて、指定したゼロ交差を使ってSDF(符号付き距離フィールド)を作成します。
Name
name
Primitiveアトリビュートをこの値に設定します。
Uniform Sampling
ボリューム内のボクセルが立方体であることのメリットは多いです。 このオプションは、サイズと解像度のフィールドに合わせることを考えずに、ボリュームの解像度を指定することができます。 このパラメータは、 Uniform Sampling Divisions で分割される軸を制御します。
Uniform Sampling Divs
Uniform Sampling の軸を分割するボクセル数。 他の軸は、このボクセルサイズに合うセルの数に分割されます。
Sampling Divs
不均一ボクセルセルを使用する時に、各次元の解像度をここで指定することができます。
Div Size
ボクセルサイズを直接指定する時のボクセルの均一なサイズ。指定したサイズのボックスが、このサイズのボクセルで満たされます。
Override Output Divs
出力メッシュやボクセルの配列の解像度を、入力をサンプリングしたものと別にすることができます。
Output Divs
フィールドを評価する分割数。ここには、見つからない値に対してフィールドを線形補間する場合に、フィールドよりも高い解像度を設定することができます。 ボリュームを出力する時は、そのボリュームはサンプリング解像度で生成されるので、この値は使われません。
Override Bounds
デフォルトの境界ボックスを入力ジオメトリよりも若干大きく設定します。 大きくオフセットしたい、またはポリゴン化を入力ジオメトリの変化に対して安定させたい場合は、境界を他の何かに上書きしてください。 Force Bounds がオンなら、ジオメトリ全体が、それらの境界内でフィットすると想定されます。 2番目の入力を指定すると、ここで指定した境界ではなく、その入力の境界ボックスが使われます。
Pad Bounds
指定した境界を若干大きくすることで、指定した境界の外側にボクセルの層を作ります。 これは、ボクセルの外側に適切に境界を広げます。
Minimum Bound
フィールド評価とサーフェス構築の最小クリップ平面境界。
Maximum Bound
フィールド評価とサーフェス構築の最大クリップ平面境界。
Offset
アイソサーフェスに適用するオフセット量。その結果のサーフェスは、元のサーフェスからこの距離だけ離れたポイントを表現します。
Build Polygon Soup
出力がアイソサーフェスの時に、アイソサーフェスを別々のポリゴンプリミティブではなく、ポリゴンスーププリミティブとして作成します。
Tolerance
SDFの構築で使用する許容値。これは光線の交点情報に影響します。 この許容値は、元のジオメトリの最大境界ボックスで乗算されるので、通常ではジオメトリスケールとは関係ありません。
Laser Scan
Laser Scan モードは Ray Intersect モードでのみ有効です。
Laser Scan モードでは、主軸に沿って光線を送信することで、SDFを構築します。 一番近い交点と一番遠い交点のみが使われます。それらの2つのポイント間の空間を内側、それ以外を外側として分類されます。
Laser Scan モードは、法線がうまく定義されていないジオメトリ、自己交差を持つジオメトリ、完全に密閉していないジオメトリでさえ動作します。 このデメリットは、内側を検出できてない時には内側の特徴を表現することができないことです。
Laser Scan をオフにしてもまだ、SDFは主軸に沿って光線を送信することで構築されます。 しかし、すべての交点が検索されます。各交点の組をテストして、セグメントが内側なのか外側なのかを判断します。 これは、うまく定義されたジオメトリの法線(つまり、マニフォールドで自己交差がない)、ジオメトリの密閉度に依存します。 とはいえ、穴のある複雑な形状を正確に表現することができます。
Fix Signs
不具合のないジオメトリでも、数値の精度誤差が原因で、間違えた符号が選択されてしまう可能性があります。 このオプションでは、SDFをポスト処理することで間違えた符号を検索します。 それらの符号は、漏れを防止したり、穴を塞ぐことで修正されます。
このオプションは時間がかかるので、SDFに問題がないことがわかっていればオフにしてください。
Note
Fix Signs の性質上、SDF内のシャープな特徴部分が不正な符号とみなされた場合には丸められます。
Force Bounds
Fix Signs メソッドは平滑化し、通常では符号反転を除去します。しかし、不正な符号の領域は、SDFの境界では安定化させることができます。 このオプションは、境界上のすべてのボクセルを外側としてマークします。 Fix Signs は、間違えた符号を安定化することはありません。
Invert Sign
中が空洞のボックスが必要であれば、他のボックスの内側にボックスを構築し、 Laser Scan を使わないことです。より強固なメソッドは、内側のボックスを指定して、反転した符号を使うことです。 これは、ボックスの外側のすべてを内側として扱うので、より強固な Laser Scan メソッドを使うことができます。
Num Neighbour
Point Cloudモードは、一番近くにあるポイントの数を検索して、それらのポイントを使ってローカルサーフェスプロパティを決めます。 近くのポイントの数が多いほど、ローカルの変化が平滑化され、より滑らかなフィールドが作成されます。
Sign Sweep Threshold
Fix Signs 処理が完了した後は、SDF内に間違えた符号のある領域が出る可能性があります。 大きなブロックを安定化させて、SDFから明瞭化させることができます。 2番目のSign Sweepパスは、それらのブロックの除去を試みるために実行することができます。
Sign Sweep Threshold は、間違えた符号であると見なす符号の変わり目の大きさを制御します。 SDFの値が、この閾値とセルの幅を乗算した値以上で変化するなら、その値は、無効な符号の変わり目であると見なされます。 元のジオメトリを光線で交差させることで、内側/外側を判断し、その結果を使って、どの符号が正しいのか判断します。 正しい符号は、モデルの前方へ伝搬します。
Max Sign Sweep Count
Sign Sweepは、符号が反転するまで(つまり、すべての変わり目が閾値の範囲内にあるまで)、またはこの最大回数に到達するまで繰り返されます。 Sign Sweep Threshold が低すぎると、処理が収束しなくなります。反対に高すぎると、非常に速く収束します。
File Mode
IsoOffset SOPは、常にSDFの再計算をすることなく、ディスクからのSDFを読み込みんだり、保存することができます。 File Modeでは、ディスクアクセスの挙動を設定します。
Automatic
ファイルが存在しなかった場合、ファイルが書き出されます。 ファイルが存在した場合、SDFがファイルから読み込まれます。
Read Files
ファイルを読み込みます。( Override Bounds がオフなら)入力ジオメトリのみを使って境界ボックスを決めます。オンなら無視されます。
Write Files
SDFを入力ジオメトリから計算し、指定したファイル名で保存します。
No Operation
ファイルアクセスなし。SDFが入力ジオメトリから生成され、その結果のジオメトリが作成された後は破棄されます。
File Name
SDF表現の保存先のファイル名。拡張子が.simdata
であれば、File DOPで読み込み可能なフォーマットで保存されます。
拡張子が.sdf
であれば、.sdfフォーマットで保存されます。他の拡張子の挙動は未定義です。
入力
Source
SDFに変換して再構築するジオメトリ。
Reference Bounds
Override Bounds を指定した時に境界ボックスで使用するジオメトリ。
Examples
SquabVolume Example for IsoOffset geometry node
このサンプルは、isooffsetを使用してボリュームに変換されたSquabテストオブジェクトに対して Volume Visualizerの使用方法を説明しています。
The following examples include this node.
BreakingSprings Example for Constraint Network dynamics node
このサンプルでは、SOP Solverを使用して、遠くに引き伸ばされたConstraint Network内のスプリング拘束を切る方法を説明しています。
ControlledGlueBreaking Example for Constraint Network dynamics node
このサンプルでは、Constraint Networkの接着ボンドを徐々に弱くして、ビルの崩壊を制御する方法を説明しています。
GlueConstraintNetwork Example for Constraint Network dynamics node
このサンプルでは、破壊するオブジェクトの隣接する破片を接着するConstraint Networkの作成方法を説明しています。
strength
などのPrimitiveアトリビュートを使えば、そのネットワーク内の個々の拘束の特性を修正することもできます。
SpringToGlue Example for Constraint Network dynamics node
このサンプルでは、近くのオブジェクト間にSpring拘束を作成して、シミュレーションで、その拘束を接着拘束に変更する方法を説明しています。
CrowdHeightField Example for Crowd Solver dynamics node
このサンプルでは、Crowd SolverのTerrain AdaptationとBullet SolverのラグドールのコリジョンにHeight Fieldを使用する方法について説明しています。
FieldForceSmoke Example for Field Force dynamics node
SmokeシミュレーションからVelocityフィールドを抽出して、それをPOPシミュレーションの風のフォースとして使用します。
FluidWireInteraction Example for Fluid Force dynamics node
このサンプルでは、Fluid Force DOPの使い方を説明しています。 Fluid Force DOPによって流体オブジェクトの動きに応じてワイヤーオブジェクトにDrag(抵抗)フォースを加えます。 流体オブジェクト内に存在する流体の箇所にのみDragフォースを適用しています。
FillGlass Example for Fluid Object dynamics node
他のRBDオブジェクトからのシミュレーションをソースとした流体でRBDコンテナを満たします。
PaintedGrog Example for Fluid Object dynamics node
このサンプルでは、色の付いた滴を落として、Grogキャラクタをペイントするためにトーラスを作成しています。 Grogキャラクタは、その色の付いたトーラスによって色が付着します。 このサンプルでは、流体シミュレーションにカラー情報を追加する方法も説明しています。
VariableDrag Example for Fluid Object dynamics node
このサンプルでは、流体シミュレーションでDrag(抵抗)フォースを変化させる方法を説明しています。 指定したフィールドを高い抵抗力のある領域にして、自動的に流体サーフェスにのみDragを適用し、その領域にはマイナスのDragを適用することで、 より揮発性のある流体を作成しています。
HotBox Example for Gas Calculate dynamics node
このサンプルでは、ボリューム表現のオブジェクトを取得して、それをTemperature(温度)フィールドに追加する方法を説明しています。 オブジェクトの温度は、Smoke Densityの値の調整、またはGas CalculateマイクロソルバDOPのPre-Multフィールドを調整することで変更することができます。
TeapotUnderTension Example for Gas Surface Tension dynamics node
このサンプルでは、ティーポットの形をした液体のブロッブを作成しています。 そして、表面張力によって、ブロッブを球状に平滑化しています。
MaskedField Example for Mask Field dynamics node
このサンプルでは、Mask Fieldによるフォースの適用範囲を定義する方法を説明するために、たくさんのRBDオブジェクトにUniform Forceを適用しています。
ShatterDebris Example for RBD Fractured Object dynamics node
このサンプルでは、破壊の方法を説明しています。 RBD Fractured ObjectやDebrisのシェルフツールを使えば、破壊されたジオメトリの破片から発生する瓦礫を作成することができます。
まず最初に破壊の定義をするために、Shatterツール(Modelシェルフ)をグラスに使用します。 次にRBD Fractureツールをグラスに使用して、その破壊された破片をRBDオブジェクトにします。 最後にDebrisツールをそのRBD Fractureオブジェクトに使用してデブリ(瓦礫)を作成します。
このサンプルでは、RBD Stateノードを使って、接着したオブジェクトの分解を制御する方法を説明しています。
平面が移動すると、破壊した円柱が分解されていきます。
AnimatedObjects Example for RBD Packed Object dynamics node
このサンプルでは、RBD Packed Objectのアニメーションパックプリミティブを使用して、 後にシミュレーションのアクティブオブジェクトへ推移させる方法を説明しています。
ReferenceFrameForce Example for Reference Frame Force dynamics node
水で満たされたRBDの花瓶を使って、花瓶の参照フレーム内で水のシミュレーションをします。
SourceVorticlesAndCollision Example for Smoke Object dynamics node
このサンプルでは、Smoke Source、キーフレームを打ったRBDオブジェクト、Gas Vorticle Geometryなどを使って、単純なSmokeシステムを説明しています。
Volume Rendering - プリミティブからのボリュームレンダリング Example for Mantra render node
ボリュームレンダリングは、高品質な煙、雲、飛沫、炎などのボリュームエフェクトを統合したレンダリングを可能にするレンダリング手法です。
ボリュームレンダリングは、多くのタイプのボリュームエフェクトのレンダリングに適しています。Mantraボリュームによるレンダリングが特に適したシーンは以下のとおりです:
-
詳細な"hero"(メインとなる)の雲、煙、炎
-
インスタンス化した雲、煙、炎のフィールド(視界)
流体ソルバを呼び出さなくても、プリミティブからボリュームを簡単に作成することができます。
この特化したサンプルでは、プリミティブのトーラスを使って、煙のボリュームをレンダリングしています。IsoOffset SOPを使えば、トーラス内部を充たすボリュームが生成されます。そして、VEX Volume Cloudを使ったマテリアルを、トーラスの形状をしたボリュームデータに割り当てています。 Smoke Cloud Density を5に、 Smoke Shadow Density を10に設定すれば、煙のような見た目を作成することができます。
以下の画像は、 Volume Quality (Mantra ROP)、 Shadow Quality (スポットライトの Shadow タブの Depth Map Shadows タイプ)、 Sampling Divs (IsoOffset SOPの Dimensions タブの Uniform Sampling を"Non Square"に設定)を調整してレンダリングしたトーラスです。煙のDiffuseカラーも調整しています。
PackedFragments Example for Assemble geometry node
このサンプルでは、Assemble SOPを使用して、リジッドボディシミュレーション向けに球をパックオブジェクトに分解する方法を説明しています。
DeformVolume Example for Attribute from Volume geometry node
このサンプルでは、ボリュームを変形する方法を説明しています。 最初に、ボリュームの解像度に合った分割数でBox SOPを作成し、そこからポイントの3Dグリッドを作成します。 次に、ボリュームの密度アトリビュート名の"dens"をそれらのポイントに転送します。 最後に、好きなようにポイントを変形して、空っぽのボリュームを作成すれば、そのボリュームをポイントの密度で満たすことができます。
attribfromvolume Example for Attribute from Volume geometry node
このサンプルでは、AttribFromVolume SOPを使って、ボリュームの値をPointアトリビュートに転送する方法を説明しています。
FluffyTorus Example for Bake Volume geometry node
このサンプルでは、Bake Volume SOPをセットアップしてFogボリュームのシャドウによるライトフィールドを計算する方法を説明しています。 これによってMantraのConstantボリュームシェーダで適切にレンダリングするためのフィールドが出力されます。
dopimportrecordsexample Example for DOP Import Records geometry node
このサンプルでは、DOPシミュレーションの記録に一致したポイントを作成しています。 DOP Import Recordsノードは、オブジェクト毎に1個のポイントまたはインパクト毎に1個のポイントを作成することができます。
ExtractAnimatedTransform Example for Extract Transform geometry node
このサンプルでは、剛体の動きを表現した変形ジオメトリから、トランスフォームがアニメーションされたパックプリミティブを作成する方法を説明しています。 この結果は、リジッドボディシミュレーションのColliderに適しています。
このサンプルでは、ForEach SOPを使って一切れのチーズに球を個々にブーリアン演算する方法を説明しています。
このサンプルでは、ForEach SOPを使って、あるオブジェクトが他のオブジェクトの各パートと交差して、結果を一緒にマージする方法を説明しています。
glueclusterexample Example for Glue Cluster geometry node
このサンプルでは、Glue Cluster SOPとGlue Network Constraint DOPを使ってボロノイ破壊するパーツを1つにまとめる方法を説明しています。 これによって、クラスタリングが凹状のオブジェクトを用意しなくてもBulletと使用することができるようになります。
SquabVolume Example for IsoOffset geometry node
このサンプルは、isooffsetを使用してボリュームに変換されたSquabテストオブジェクトに対して Volume Visualizerの使用方法を説明しています。
volumeanalysis_curvature Example for Volume Analysis geometry node
このサンプルでは、Volume Analysis SOPでボリュームの曲率を計算し、曲率の値から元のポイントに色を付ける方法を説明しています。
volumeanalysis_grad Example for Volume Analysis geometry node
このサンプルでは、Volume Analysis SOPでボリュームの勾配を計算し、その勾配からジオメトリのポイントを変位する方法を説明しています。
volumeblur Example for Volume Blur geometry node
このサンプルでは、Volume Blur SOPでローカルフィルターをblur(ブラー), dilate(膨張), erode(侵食)のボリューム値に適用する方法を説明しています。
volumecompress Example for Volume Compress geometry node
このサンプルでは、Volume Compress SOPで外観をあまり影響を与えずにボリュームのメモリ使用量を減らす方法を説明しています。
volumefeather Example for Volume Feather geometry node
このサンプルでは、Volume Feather SOPでシャープなボリュームを単純に外側または内側方向に平滑化する方法を説明しています。
volumefromattrib Example for Volume from Attribute geometry node
このサンプルでは、Volume From Attrib SOPでPointアトリビュートをボリュームボクセルに転送する方法を説明しています。
DetectOverlap Example for Volume Merge geometry node
このサンプルでは、Volume SOPとVolume Merge SOPをプロシージャルに使って、たくさんの入力のボリュームの重複した領域を検出する方法を説明しています。
volumemerge Example for Volume Merge geometry node
このサンプルでは、Volume Merge SOPで複数のインスタンス化したボリュームを1台のカメラの視界領域のボリュームに平坦化する方法を説明しています。
barycenter Example for Volume Reduce geometry node
このサンプルでは、Volume Reduce SOPで3Dオブジェクトの重心を計算する方法を説明しています。
volumeresample Example for Volume Resample geometry node
このサンプルでは、Volume Resample SOPでボリュームの解像度を増減する方法を説明しています。 また、サンプリングオプションを変えて、ボリュームの品質に影響を与える方法も説明しています。
volumesurface_explicitgrade Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで、三角形のサイズを指定するための他のボリュームを使って、SDFをサーフェス化する方法を説明しています。
volumesurface_hierarchy Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで勾配を指定してSDFの階層をサーフェス化する方法を説明しています。
volumesurface_simple Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで順応性のあるトライアングルサイズを使ってSDFをサーフェス化する方法を説明しています。
ImportVolumes Example for Volume VOP geometry node
このサンプルでは、複数のボリュームをVolume VOP SOPに取り込む方法を説明しています。
VoronoiSplitWeights Example for Voronoi Split geometry node
このサンプルでは、Voronoi Split SOPのWeight Attributeオプションを使って、パワーダイアグラム(ラゲールボロノイ図)を作成する方法について説明しています。
TransformFracturedPieces Example for Transform Pieces geometry node
このサンプルでは、Transform Pieces SOPを使って、低解像度ジオメトリによるDOPリジッドボディ破壊シミュレーションの結果から、 高解像度ジオメトリをトランスフォームする方法を説明しています。
See also |