粒子がわ〜となってるやつという知識しかなかった。パーティクルにそんなに興味がなかったので触れてなかったけど、こちらのツイートを見て触りたくなった。
ノイズをかけて点ごとにスケーリング。VFXGraphを使うことでリアルな点群とバーチャルっぽい表現とを行き来することができますね #エンジニアカフェ pic.twitter.com/D0ULvdHy5J
— ながみね (@KzoNag) November 22, 2019
VFX導入
私は未来を生きているので普通にUnity2020を使います。
HDRPでプロジェクト作ります。
2020だと既にPackageが入ってて、Create>Visual Effects>Visual Effect GraphでNew VFXができました
シーンに置いたら黒いものがモクモクしています。
インスペクタでEditを押したら画面が開きます
ノードで作っていくのかな?
点群データ
一番最初のツイートでもされてた、点群データをVFXGraphで操る
出来てしまった。
— 龍 lilea (@lileaLab) April 13, 2019
VFXGraphに点群読み込み!
"生成と消失を繰り返すデジタル芸大"
まだまだテスト段階だけど #VFXGraph で #点群 扱えるなら可能性色々拡がるのでは。#デジタル芸大 #xRArchi pic.twitter.com/nkkyJQue8o
こちらの記事を追っていきます。
以下ほとんどこちらの記事と同じです。
点群データを持ってくる
ただ、まず点群データがない。
いやフォトグラメトリした過程で作られて、多分吐き出せるんだろうけど知らない。
形式も色々あるみたい。下で配布されているデータはptsだって
昔Tangoでスキャンしたときはply形式だって
とりあえず上の都市データをダウンロードします。
CloudCompare
こちらのソフトでデータの変換をします
こんな画面
さっきのptsファイルをドラックして読み込む
4番のScalarをIgnoreにする
Apply!
この画面はNo
データ見れた!
ここでデータの状態を見れる
Box Centerみあたらない
とりあえず記事に書いてある通りに位置ずらした。
そしてsave
ASCII cloud形式で保存。拡張子をpcacheにする
一番上を4にする。Save color(0~1)にチェックを入れる
txtなのにめっちゃ時間かかる。
txtなのにこんなサイズになるの!?
ファイル分割
サイズが大きすぎるので1GB以下ぐらいにしないといけない。
CloudCompareで間引く
赤と青の点のマークを押す
スライダーを操作したら間引きできる。
やりすぎて35KBになっちゃった
テキストの編集
開くのはVSCodeやメモ帳だと開けなかった。
おすすめされているEmEditorというのをダウンロードして開いたら一瞬だった。
一番最初に下のヘッダーを付けたらいいらしい
pcache
format ascii 1.0
comment Exported from CloudCompare
elements 599
property float position.x
property float position.z
property float position.y
property float color.x
property float color.y
property float color.z
end_header
Elementは行数。ヘッダー分は抜く
(保存するとき形式を選ばされた。)
Unityに読み込む
ちゃんとなっていればUnityに読み込んだ時にアイコンが付く。
私はヘッダーの行数が間違っていて何度もうまく読み込めなかった。
エラーちゃんと出てた
VFXGraphにセット
ノードの画面で右クリック>Create Block
検索でPointCache。そしてさっきのファイルをセット
あとはノードにつないでいい感じに表示したらいいらしい。
できません!!!!
表示されない!変な位置にいるから表示されてないのか、ノード組み方間違ってるのか分からないけど、シーンで表示されない。
まずはVFX学ぶところからやらないといけないのかな・・・
それかいい感じの点群のファイルを用意しないと
なんか一つは生成されてた。
点群のノードをつなげなかったらなんか生成されてた。
最後に
サンプルのpcacheファイルも読み込めない
pcache
format ascii 1.0
comment Test
elements 8
property float position.x
property float position.z
property float position.y
property float color.x
property float color.y
property float color.z
end_header
-0.5 0.3 -0.2 0.2 1 1
0.3 -0.5 0.2 1 0.2 1
0.5 0.4 -0.1 1 0.4 1
-0.1 0.5 0.5 1 0.2 1
-0.4 -0.5 0.2 1 1 1
-0.3 0.4 0.5 0.2 0.2 0.1
-0.5 0.4 0.2 1 1 1
0.5 -0.3 -0.3 1 1 1