点群データをUnityのVFX Graphから使用できるようにしてみます。
使用したバージョンは以下のとおりです。
- Unity: 2020.1.4f1 Personal
- Universal RP: 8.2.0
- Visual Effect Graph: 8.2.0
Pcxのインポート
keijiro / Pcxというパッケージを使用するので、READMEに従ってUnityにインポートします。
点群データの作成
今回は静岡県ポイントクラウドデータベースで提供されている点群データを使用させて頂きました。Pcxはbinary形式のplyファイルしか使用できないので、CloudCompareなどのソフトウェアでファイルフォーマットを変換します。その際に、必要であれば点群のマージや間引き、スケールの変更などもしておきます。
点群データのインポート
Unityに作成したplyファイルをインポートします。インポートすると最初はContainer TypeがMeshになっているので、Textureに変更してApplyボタンを押します。そうすると、VFX Graphで使用できる点群の位置と色を書き込んだテクスチャがそれぞれPosition Map、Color Mapという名前で生成されます。
VFX Graphでの表示
作成されたテクスチャを使用して単純にすべての点を表示するVFX Graphは以下のようになります。Single Burstで点群データに含まれる点の数だけパーティクルを作成して、Set Position from MapとSet Color from Mapで先ほど作成したテクスチャから位置と色をそれぞれ割り当てるようにしています。
結果、以下のように点群データをUnityで表示することができました (浜松城です)。
【出典:静岡県ポイントクラウドデータベース】、CCライセンス 表示 4.0 国際