Blenderで点群:インポートからレンダリングまで
概要
Blenderを使った点群ファイルのビジュアライズ方法をメモします。
大まかな流れは以下の通りです。
1. ply形式のファイルを用意する。
2. BlenderにPoint Cloud Importerをインストールして、点群を読み込む。
3. Geometry NodeとShaderをセットする。
4. Cyclesでレンダリング。
点群をBlenderにインポートする
ply形式の点群データを用意する
今回の方法では点群データをply形式で用意する必要があります。
そのためには、例えばCloud Compareなどのソフトウェアを使うのが簡単です。
import-ply-as-vertsをインストールする
次に以下をインストールする必要があります。(感謝)
やり方はリンク先に書いてあります。Blenderのplyインポート用のスクリプトを、提供されているものと置き換えます。
まずBlenderのEdit>Preferences>Addonsから、デフォルトでオンになっているPLYファイルインポート用アドオンのチェックを外します。
次に上記githubのレポジトリをZipファイルとしてダウンロード・展開して、好きなフォルダに置いておきます。その中にある、PLY_As_Verts.zipというファイル(こちらは展開しない)を、BlenderのEdit>Preferences>Addons>Installから選択します。
その後、インストールされたアドオンにチェックを入れます。
完了するとインポートの項目が以下のようになります。
インポートするときは、以下のようにチェックを入れます。
以下のようにインポートできます。
Blenderでの設定
Geometry Nodeの設定
点群データがインポートできますが、そのままではレンダリングできません。まずはGeometry Nodeを以下のように設定します。
"Mesh to Points"と"Set Material"というノードをつなぎます。"Mesh to Points"のRadiusで、点群のそれぞれの点の半径を設定できます。
"Set Material"ノードに適当なマテリアルをセットします。次にそのセットしたマテリアルの設定が必要になります。
Shaderでマテリアルを設定する
Shaderタブで、先ほどセットしたマテリアルを開き、以下のように設定します。
"Attribute"ノードを入れ、"Name:"の欄に"Col"と入力します。これによって、それぞれの点の色情報を取得できます。簡単のため、"Attribute"ノードの"Color"出力を直接、"Material Output"の"Surface"入力につなぎます。
レンダリングエンジンをCyclesに設定
今回の方法では、レンダリングをCyclesで行う必要があります。
レンダリングモードで見ると、点群を色つきで表示できていることが分かります。
あとはカメラやライトを設定したり、マテリアルを変更したりすることで、好きな画像や動画をつくることができます。
おわりに
特に建物などをスキャンした点群データはしばしば大きくなると思います。もし大きすぎてBlenderにインポートできない場合は、Cloud Compareなどを使って点を間引くという方法もあります。
分かりにくいところなどありましたらコメントをお願いします。
この記事が気に入ったらサポートをしてみませんか?