🎥

様々な環境で3D Gaussian Splattingを動かしてみた!

2023/12/14に公開

こんにちは!!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)のノベルビュー合成を可能になった.

本家の論文はこちらになります.
https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/

本家のgithubはこちらになります.
https://github.com/graphdeco-inria/gaussian-splatting

今回行う環境

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で使えます.
https://github.com/aras-p/UnityGaussianSplatting

Unityでの流れは以前記事を書いたので、こちらをご覧ください。
https://zenn.dev/aster_ideatech/articles/523b4909d4e48f

Unity(VFX)での流れ

以下のソースコードでGaussian SplattingをVFXとして使用することができます.
https://github.com/keijiro/SplatVFX

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を実行すると以下のような動画になります.
https://x.com/Aster_NeRF/status/1714278149851345323?s=20

Unreal Engine5での流れ

Unreal Engine5でGaussian Splattingを可視化するPluginは空き家総研VRラボのPluginを使用します.こちらは価格が $99 (約15,000円)です.
対応バージョン 5.1 - 5.3

https://vrlab.akiya-souken.co.jp/products/threedgaussianplugin

Pluginをインストールしたら,Pluginのチェックを入れましょう.

チェックを入れたらUE5を再起動しましょう.
再起動したら,次のようと白のボタンが出てくると思います.

これをクリックして,plyファイルを選択しましょう.選択すると,インポートが始まります.

インポートが終わると次のようなフォルダとブループリントがプロジェクトに入ります.

このブループリントをドラッグ&ドロップしましょう.

ドラッグ&ドロップすると以下のようにバラ庭園のGaussian Splattingが表示されます.
描画が荒いのは,実行モードだと治るので,気にしないでください.

最後に

今回は様々な環境でのGaussian Splattingの可視化の流れを紹介しました.
Gaussian SplattingがUnityやUnreal Engine5で可視化できるようになったので,Gaussian Splattingを背景としたゲームが今後出て来るのではないかと思っています.
今後の技術の発展に期待しましょう.

次は、@mofuruneさんの記事になります。ぜひご期待ください!

Discussion