SDFツールの目的
InstaMATのElementGraphで用意されているSDFツールは以下のとおり
- SDF bevel Effect
- SDF Fill Effect
- SDF Onion Operation
- SDF Operation
- SDF Outline Effect
- SDF Round
- SDF Scatter
- SDF Shape
- SDF Visualize
上記のノードを利用することでSDFを用いた処理を行うことができる。
「そもそも、SDFとは何か」
youtu.be
上記動画はSDFのデータセットに関する論文だが、冒頭にSDFの説明がある。
要約すると「物体認識をするために、中側と外側を分ける。分けた内容をどの程度外側(内側)にあるのかを表す。
結果として外側と内側を分けた上に等高線のようなビジュアルで物体の形状を認識をできる」ようなものと解釈した。
実際にInstaMATのSDFオブジェクトのプレビューは等高線のようなものになっている。
公式動画の内容から紐解く
公式YouTube動画の説明文を翻訳してみる。
youtube.com
InstaMAT Studio で解像度に依存しないシェイプを作成できることをご存知ですか?
InstaMAT の SDF ノード スイートを使用すると、グラフの解像度に関係なく鮮明なシェイプを作成できます。複雑なフォームを構築し、柔らかさを追加するなどの効果を適用したり、アウトラインを作成したりできます。
1.解像度に依存しないシェイプ
まず、SDFオブジェクトを生成するために「SDF Shape」ノードを利用する。
デフォルトで約20種類のシェイプが登録されている。
生成されるデータはベクターではなくラスターのため、プロジェクト自身の最大ピクセル数に依存するため違和感がある。
しかし、編集される元データ(SDF Shapeのデータ)はプロジェクト自身の最大ピクセル数を変更することで自動更新がされるため、ピクセルサイズの固定はされていないことから、嘘ではない
2.複雑なフォームを構築
「SDF Operation」ノードを利用することで2種類のインプットされたSDFを「合成(Union)」、「減算(Subtraction)」、「差分(Intersection)」させることができる。
3.柔らかさを追加
「SDF Operation」ノードなどのSoftnessを制御することでSDFの物体認識点を制御することができる。
(等高線を内側にする)
4.アウトラインを作成
「SDF Outline Effect」ノードを利用することでインプットされたSDFの物体認識点を可視化することができる。
5.SDFモデルの可視化
「SDF Visualize」ノードを利用する。
6.シェイプにベベルを加える
「SDF Bevel Effect」ノードを利用する。
7.SDFの加工
「SDF Operation」、「SDF Onion Operation」ノードを利用する。
8.エッジを丸める
「SDF Round」ノードを利用する。
9. 物体認識点を塗りつぶす
「SDF Fill Effect」ノードを利用する。
10 .SDFモデルを散らす
「SDF Scatter」ノードを利用する
11 .SDFモデルを立体化する
「Mesh shape from Height」ノードによりメッシュ化
プレビュー用に「Mesh Render」を追加 (メッシュ書出をする場合はMesh Plane Clipを出力パラメータにする)
結論
InstaMATではSDF(符号付き距離関数)を活用した2D画像合成が可能。
加えてグレースケール画像を用いてメッシュを生成できるため、言い方次第ではSDFモデリングが可能である。