BMS, Movie, Illustrations, Programming

Mesh to Points ノードで、辺をメッシュに変換する【Blender / Geometry Nodes】

目的

Geometry Nodes で辺を任意のメッシュに変換する方法を考えます。

良い例:Mesh to Points ノードを使う(完)

そんなノードが最初からあったなというのを記憶の片隅から掘り起こしました。

他の Geometry Nodes で Instance on Points を適用して完成

頂点のままだとレンダリングされないので、 Instance on Points を追加するなどして、メッシュが見えるようにします。以下の図は UV Sphere ノードを使用したものです。

おまけ:辺の長さと向きを属性として保存する

Attributes として辺の長さや向きを保存して、他の Geometry Nodes から参照することもできます。

長さは Vector Math ノードの Distance で、向きは Subtract で計算しています。元のジオメトリにおける Edge を取得するために、 Sample Index や Sample Nearest などのノードが必要になります。

他の Geometry Nodes から属性を参照して、向きや大きさを整えます。

応用例 1:点の大きさをメッシュで制御する

Blender では頂点に Attribute (属性) を持たせることが出来ますが、頂点の属性はエディタ上で視覚的に編集するのが簡単ではありません。

そこで、この方法を使えば、点群の属性を辺の長さで可視化することができます。Pivot Point を Individual Origins にすることで、複数の islands のサイズを一括で変更することができます。

(一方で、Blender 5.0 以降の UI はまだ確認していないので、将来のバージョンでは Point Cloud の radius の編集が簡単になっているかもしれません。)

応用例 2:ワイヤーフレーム

パラメータを調整すれば、Wireframe Modifierのようなことを行うこともできます。

(ただし、 Curve to Mesh ノードを使うほうが簡単なので、普通はこの方法は使いません。)

ダウンロード

Blend ファイルをダウンロード (edge_to_points_with_mesh_to_points.blendblend)

リンクを右クリックして保存してください。