モデルを点群に変換・格納する、Point Cloudの使い方について解説します。


グラスホッパー上では上の2つのどちらかで表されます。
モデルを点群に変換する
Point Cloudを使うことで、モデルを点群に変換することができます。
点群は、通常の点データとは異なり、複数の点の集合を1つのデータとして扱います。
点群を使うメリットとして、通常のオブジェクトよりもデータ軽くすることができることが挙げられます。

使用コンポーネント:①Center Box ②Point Cloud
最初の例として、立方体を点群に変換してみます。
Center BoxのXとYとZ端子に、任意の辺の長さの数値を入力します。
今回は数値の100を入力しており、この数値は辺の中心から端までの距離なので、1辺の長さは200になります。
これにより、200×200×200の立方体が作成されます。

その後、Center BoxをPoint Cloudにつなげます。
すると、立方体から点群が作成されます。

立方体を非表示にしてみると、点群で立方体が表現されていることが分かります。

追加コンポーネント:①Deconstruct Brep
通常の点データと点群のデータを比較して見ます。
Center BoxをDeconstruct Brepにつなげることで、V端子から立方体の頂点の点データが出力されます。
Point Cloudと比較すると、通常の点データは1つ1つの点データに分かれています。
一方、Point Cloudは1つのデータにまとめられています。
このようにPoint Cloudは、複数の点の集合を1つのデータとして扱います。

使用コンポーネント:①Sphere ②Point Cloud
2つ目の例として、球を点群に変えてみます。
SphereのR端子に、半径の数値を入力します。
今回は、100を入力しています。
すると、球が作成されました。

その後、SphereをPoint Cloudにつなげます。
すると、このように球から点群が作成されました。

球を非表示にしてみます。
先程の立方体より点の数が多いため、点だけでも球だとより認識しやすいです。

離れてみると、より球だと認識できます。

次は、より複雑な形態から点群を作成してみます。
ライノセラス上で作成した、上の画像のような曲線を使います。

使用コンポーネント:①Curve ②Pipe ③Cap Holes ④Point Cloud
最初に、ライノセラス上の曲線を、Curveに格納します。

さらに、PipeのR端子に、半径の数値を入力します。
今回は、10を入力しています。
すると、パイプが作成されます。
この状態だと開いているので、PipeをCap Holesにつなげて、パイプを閉じます。

その後、Cap HolesをPoint Cloudにつなげます。
すると、パイプから点群が作成されました。

パイプを非表示にしてみます。
このように、オブジェクトの形態が複雑であるほど、点群を構成する点の数は多くなります。

離れて見ると、より点群がパイプだと認識できます。
点群を格納する

追加コンポーネント:①Reduce Point Cloud
Point Cloudに点群データを格納することもできます。
上の例は、Reduce Point Cloudで点群の点の数を減らし、再度Point Cloudに格納しています。
通常の点を格納してもまとまった点群データは作成できない

使用コンポーネント:①Construct Point ②Point Cloud
通常の点を格納する場合を見てみましょう。

今回は、4つのConstruct Pointを使い、4点作成しました。
1目は、数値を入力していないため、原点に点が作成されています。
2つ目は、X端子のみに数値の100を入力してるため、100,0,0の位置に点が作成されています。
3つ目は、XとY端子に数値の100を入力してるため、100,100,0の位置に点が作成されています。
4つ目は、Y端子のみに数値の100を入力してるため、0,100,0の位置に点が作成されています。

4つのConstruct Pointを、Point Cloudにつなげました。
すると、点群データに変わりますが、1つの点群データではなく、4つの点群データが生成されていることが分かります。
これは、4つの点が1つにまとまっているのではなく、1つの点から構成される点群データが4つ作成されているためです。
このように、通常の点を複数つなげても、まとまった点群データを作ることはできません。
ライノセラス上の点群データを格納する
ライノセラス上の点群データを、Point Cloudに格納することもできます。

こちらが、今回使用するライノセラス上の点群データです。
ライノセラス上の点群データを格納する方法
まずは、ライノセラス上の点群データを格納する方法を見てみましょう。

ライノセラス上では、メッシュデータのみ点群データに変換して作成することができます。

コマンドに、PointCloudと入力します。
もしくは、上の画像のアイコンをクリックします。

その後、メッシュを選択します。

すると、このようにメッシュから点群が作成されます。
Point Cloudにライノセラス上の点群データを格納する

1つの点群を格納する場合、Point Cloudを右クリックし、Set one Point Cloudを選択します。

その後、ライノセラス上の画面に切り替わります。
格納したい点群を選択します。

すると、点群が格納されました。

ライノセラス上の様子です。
1つの点群を格納するということは、1つの点を格納することではないため、点群全体が格納されます。

次は、複数の点群を格納してみます。

複数の点群を格納する場合、Point Cloudを右クリックし、Set Multiple Point Cloudsを選択します。

その後、ライノセラス上で複数の点群を選択します。

すると、複数の点群が格納されました。

ライノセラス上の様子です。
Point Cloudコンポーネントを使用しているグラスホッパー記事はこちら↓
Comment