様々な環境で3D Gaussian Splattingを動かしてみた!
こんにちは!!Asterです!!!
この記事は、Iwaken Lab.アドベントカレンダー2023の14日目の記事です。
本日は3D Gaussian Splattingを様々な環境で動かす流れを記事にしました.
お手軽にできますので,ぜひご覧ください.
Gaussian-Splatting とは
radiance Field では,高品質なビジュアルを達成するには,訓練とレンダリングに時間がかかるニューラルネットワークが必要.
そこで,Gaussian-Splattingでは,3つの要素を導入
- 3D gaussianでSceneを表現
- カメラキャリブレーション時に生成される疎な点から出発し,シーンの最適化のために連続的なvolumetric radiance fieldsの望ましい特性を保持しつつ,空の空間での不要な計算を回避する3D gaussian でsceneを表現する.
- 異方性共分散の最適化
- 3D gaussian のインターリーブ最適化/密度制御を行い,特にSceneの正確な表現を達成するために異方性共分散を最適化する.
- 異方性スプラッティングをサポートし,トレーシングの高速化とリアルタイムレンダリングの両方を可能にする.
1080p解像度で高品質なリアルタイム(≧30fps)のノベルビュー合成を可能になった.
本家の論文はこちらになります.
本家のgithubはこちらになります.
今回行う環境
WebGL
Unity
Unity(VFX)
Unreal Engine5
Babylon.js
今回使う3D Gaussian Splattingの学習済みモデル
学習済みモデルはこちらをDawnLoadしましょう.(1.4GB)
WebGLでの流れ
https://antimatter15.com/splat を開きましょう.
開くと次のようなwebブラウザが見えると思います。
次にダウンロードした学習済みモデルをドラッグ&ドロップしましょう.
このように.plyファイルをドラッグ&ドロップするだけで簡単に表示を行うことができます.
表示結果は次のようになります.
.plyファイルをドラッグ&ドロップをするとmodel.splatファイルがダウンロードされます.
このファイルはUnity(VFX)で使用します.
Unityでの流れ
以下のソースコードがUnityで使えます.
Unityでの流れは以前記事を書いたので、こちらをご覧ください。
Unity(VFX)での流れ
以下のソースコードでGaussian SplattingをVFXとして使用することができます.
UnityのVersionは2023.1.16f1です.
流れとしては,ソースコードをgithubからCloneします.
git clone https://github.com/keijiro/SplatVFX.git
次のようなVFXフォルダをUnityで開きます.
VFX Sceneを開くと次のような画面になります.
Unityでの設定方法は次の画像の流れで行います.
WebGLを使用したときに保存したSplatファイルをドラッグ&ドロップします.
- HierarchyからVFX オブジェクトを選択します.
- 次にInspectorのVFX Property Binder コンポーネントのSplat Dataを先ほど入れたsplatファイルをドラッグ&ドロップします.
すると次の画像のようにバラ庭園のモデルが可視化されました.
この時表示が変わらないときは,VFX を入れなおしましょう.
表示が変わって,このSceneを実行すると以下のような動画になります.
Unreal Engine5での流れ
Unreal Engine5でGaussian Splattingを可視化するPluginは空き家総研VRラボのPluginを使用します.こちらは価格が $99 (約15,000円)です.
対応バージョン 5.1 - 5.3
Pluginをインストールしたら,Pluginのチェックを入れましょう.
チェックを入れたらUE5を再起動しましょう.
再起動したら,次のようと白のボタンが出てくると思います.
これをクリックして,plyファイルを選択しましょう.選択すると,インポートが始まります.
インポートが終わると次のようなフォルダとブループリントがプロジェクトに入ります.
このブループリントをドラッグ&ドロップしましょう.
ドラッグ&ドロップすると以下のようにバラ庭園のGaussian Splattingが表示されます.
描画が荒いのは,実行モードだと治るので,気にしないでください.
最後に
今回は様々な環境でのGaussian Splattingの可視化の流れを紹介しました.
Gaussian SplattingがUnityやUnreal Engine5で可視化できるようになったので,Gaussian Splattingを背景としたゲームが今後出て来るのではないかと思っています.
今後の技術の発展に期待しましょう.
次は、@mofuruneさんの記事になります。ぜひご期待ください!
Discussion