美味しい焼き鳥屋さん

初心者による技術系のメモ

InstaMAT ElementGraphのSDFノードについて調べてみた

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モデリングが可能である。