Blender Sverchok Merge mesh 2Dノードを触る

Sverchok

はじめに

以前BlenderでBen図を作った。その時はBoolean modifierを駆使して作ったけど、Sverchokはあまり苦労せず作れる事がわかったので記事にする。

※以前作成したもの

参照元

github.com

機能

このノードは入力されたメッシュの交差点を見つけ追加情報を面に追加して統合する。

接尾辞2Dは、このノードが任意の平面化されたメッシュの入力を期待している。しかしそれはXY面のみという事を意味しているわけではありません。入力メッシュはXY面の上または下、または相対的にタイリングされたものです。

このノードは重なり合った2つのメッシュを統合する事を目的としています。

しかし入力されたメッシュの片側の重なり合った内部または両方を取ることができますが、マスクインデックス出力の扱いには注意する必要があります。

このノードは明らかに重なり合った辺と頂点を処理することができますが、実装は少しトリッキーでした。このノードはまたポリゴンに穴を作ることもできます。このアルゴリズムは穴とともにいくつかの部分にポリゴンを分割します。新しい部分の境界に穴が配置されます。

このノードは入力されたメッシュに関する情報を使い新しいメッシュにそれを割り当てます。

処理

ノードは重いメッシュを扱うこともできますが、いくつの交差点をみつけるアルゴリズムの敏感さに関する重要なパラメータがあります。

最初のメッシュの殆どの部分が2番目のメッシュに交差している場合は重いメッシュを使わないほうがいいでしょう。

また辺が重なっていると処理が重くなります。ほとんどの辺が互いに重なっている場合は問題ありませんが、1つの辺が他方の辺に数多く重なっている場合は劇的に処理が重くなります。

カテゴリ

CAD -> Merge mesh 2D

入力

  • VertsA – メッシュ1の頂点
  • FacesA – メッシュ1の面
  • VertsB – メッシュ2の頂点
  • FacesB – メッシュ2の面

出力

  • Verts – マージされたメッシュの頂点
  • Faces – マージされたメッシュの面
  • Mask A – 0と1のリストで Faces 出力に関連している。1が意味するのはメッシュAの内部に面があることを意味している
  • Mask B – 0と1のリストでFaces 出力に関連している。1が意味するのはメッシュBの内部に麺があることを意味している

N Panel

パラメータタイプ説明
Simple maskBoolマスクソケットのスイッチャー
Index MaskBoolインデックスマスクのスイッチャー
Accuracyint小数点第何位までを比較計算するかの数

Accuracy 殆どの場合、このパラメータに触れることはありませんが、ノードがエラーを出した場合にこの数値を変えて解決する事もあります。このパラメータはこの名前に関わらずパフォーマンスに影響を与えません。

マスクの使用法

下記図からわかるようにマージ後は3つの面になります。
面に3つのインデックスがあります。

Logic functionノードとList Mask outノードで処理できる有用な情報です。この情報により2Dブール演算に近い結果を得ることができます。この出力意味するのは

Masking Indexはよりトリッキーなデータを返すため利用者が混乱しないようにデフォルトでは隠しています。

ここ以降の例はよくわからなかったので知りたい方は参照元へ。

タイトルとURLをコピーしました