Unityで点群(Point Cloud)をレンダリングするよ。-360度動画編-

全然別なことを調べていたときに、

ふと、

Unityで360度動画をみたいな記事を目にしたので、前回の記事「Unityで点群(Point Cloud)をレンダリングするよ。」で、作ったデータでやってみるかなっということでやってみた。

これ↓

うーん、やはりYouTubeで4Kでも、GoPro VR Playerでも粗いのは否めないか…。

はじめは、8Kの60fpsで出力しようと思ったんだけど、1枚あたり250MBくらい巨大なモノになったので(そりゃそうか…)、今回は4Kの30fpsで出力。

それと、この前変換しきれなかった分のデータ追加、Unity2018のインストール、レンダリング等々ほぼiPhoneからリモートでやったのでものすごく大変だった。

8Kにすれば多少は良くはなると思うんだけど、自宅PCでは色々と限界なのと時間ばかり取られてしまうので、ここら辺でお終いにしときます。

[`evernote` not found]
Pocket
LINEで送る

Unityで点群(Point Cloud)をレンダリングするよ。

ブログタイトルで「Unreal Engineするよ。」と謳っていますが、今回はUnityです。

Unityで点群をウォークスルー!?して連番で書き出しました。

UE4はじめ、その他有料ソフト等々かなり色々と試したんだけど、基本的な機能含めUnity以外は重たくて駄目でした。

Unity以外で他になにかいい方法があれば教えていただきたいですが…。

そしてまだ、Unity自体よくわかっていないので今回は詳しいことは要望+もっといい方法があったときに記事にしたいと思いますが、とりあえず今回やったことをサクッとまとめました。

  1. 点群データはLeica Geosystemsより拝借→データセットのダウンロード
    21スキャン/3GBのやつ。形式は.e57ですね。
  2. その.e57を”Cloud Compare”で.txtに変換(スキャン分21個の.txtに変換)。
  3. “Meshlab”でtxtを.offに変換。
  4. Unityへ”Point Cloud Free Viewer”でインポート。
  5. “Unity Recorder”でレンダリング。
    今回はテストの意味も含め、4Kの60fps。
  6. After Effectsでコンポ→レンダリング

それで出力したのがこちら。

とにかく点群データの変換がめちゃくちゃ時間かかりました。

加えて、ちゃんと調べてないので正確ではないかもしれないけど、.txtデータの1つのファイルに大体1,500万ポイントくらいあってそれが21.txtファイル。

自分のPCがそんなにスペックの高いものではないというのもあり、とにかく時間がかかりすぎることにしびれを切らし、実際には14.txtファイルしかインポートしていません。

なので、1,500万ポイント×14ファイル=2億1,000万ポイントくらいはあるんですかね?

もしかしたら、勘違いしているかもしれませんが、多分それくらいです。

それにしても、Unityって結構メンド…いやいや、色々なことができますね。

やっぱり、Unityもやっていくかなぁ…。

ちなみに、Unreal Enigneでも点群を読み込むプラグインがあるのですが、今回の自分のケースだとマッチしませんでした。

これ→Point Cloud Plugin

[`evernote` not found]
Pocket
LINEで送る

Reality Captureでフォトグラメトリするよ。 其の二 -iPhone動画-

今年の7月かな?

葉山の海でRealityCaptureにかけようとスキャン用に拾ってきた石が、ベランダに放置してたら粉々に砕けてしまったんだけど、

ふと、

「iPhoneの動画でイケるんじゃね?」

と思い試してみました。

※ほんとは、川崎のチッタのところにVENOMのデカい顔が展示してあるので、それをスキャンしようと思ってたんだけど、天気が良くてテカテカに反射してたのと、人がいない早い時間に行くつもりが寝坊してしまったというのと、そろそろ片付けないと、奥さんに怒られる…という経緯もあり…。

追記↓

2018年11月21日の更新(Version 1.0.3.6310)で、動画をキャプチャする機能が追加されました。

iPhoneで動画を撮影

自分はiPhone7plusなんだけど、

実は4Kで撮影できるらしい…知らなかった。

設定→カメラ→ビデオ撮影で変更可能です。

むむ!

60fpsでも撮れるのか…と思いつつ、4Kで撮影。

ちなみに、崩壊前↓

崩壊後↓

撮影した動画をAfterEffectsに突っ込んでみたら、間違ってブラーかけてないよねってくらいボケボケだったので、落ち着いて再撮影。

今度は、ゆっくり動かしながら慎重に。

それがこちら↓

AfterEffectsに入れてみると…うーーーーん…本当はもっと、ゆっくりじっくり撮った方がいいんだろうけど、ま、許容範囲内!

と言うことで、この動画を画像に変換します。

n番毎の画像をレンダリングする。

n番毎って言い方でいいのかな?

要は、今回は1秒30枚の2分(3,600フレーム)動画、それだと画像が多すぎるので、予めレンダリングする枚数を間引いちゃう。

やり方は、こちらの記事を参考にさせていただきました。

AfterEffectsで設定したフレーム分スキップして出力する方法

ふたつのやり方が載っているけど、自分は以下の方法でやりました。

御二方に感謝。

そして今回の場合は、500枚前後の画像が欲しかったので調整しながら画像をレンダリング。

RealityCaptureへ。

画像が出来たら、あとはもうRealityCaptureに突っ込んでMAYAに持っていく。
※RealityCaptureの詳しい使い方はまた今度。

今回は、サクッとやってサクッと記事を書きたかったので、Unreal Engineには持っていってません。

で、MAYAでレンダリング(Arnold)したものが以下です。

比較用に先程の実写。
崩壊後を反転しただけ…↓

ま、予想以上ではあるけど、ヌルさは否めないかなと。

ちゃんと一眼カメラとかで静止画を撮ったほうがいいんだろうけど、アタリとして使うときとかそこまで重たいものはいらないって時とかサクッとやる分にはOKなんじゃないかな。

ってな感じでした。

[`evernote` not found]
Pocket
LINEで送る