Gaussian-Splatting をUnityで動かしてみた
こんにちは!!Asterです!!!
本日はGaussian-SplattingでUnityを動かす流れを記事にしました.
お手軽にできますので,ぜひご覧ください.
Gaussian-Splatting とは
radiance Field では,高品質なビジュアルを達成するには,訓練とレンダリングに時間がかかるニューラルネットワークが必要.
そこで,Gaussian-Splattingでは,3つの要素を導入
- 3D gaussianでSceneを表現
- カメラキャリブレーション時に生成される疎な点から出発し,シーンの最適化のために連続的なvolumetric radiance fieldsの望ましい特性を保持しつつ,空の空間での不要な計算を回避する3D gaussian でsceneを表現する.
- 異方性共分散の最適化
- 3D gaussian のインターリーブ最適化/密度制御を行い,特にSceneの正確な表現を達成するために異方性共分散を最適化する.
- 異方性スプラッティングをサポートし,トレーシングの高速化とリアルタイムレンダリングの両方を可能にする.
1080p解像度で高品質なリアルタイム(≧30fps)のノベルビュー合成を可能になった.
本家の論文はこちらになります.
本家のgithubはこちらになります.
今回使用するコード
今回は,こちらのgithubを用いてUnityで表示します.
動作可能環境
論文に記載されている"bicycleデータ"での動作可能環境
- Windows (NVIDIA RTX 3080 Ti):
- Official SBIR viewer: 7.4ms (135FPS). 4.8GB VRAM usage.
- Unity, DX12 or Vulkan: 13.4ms (75FPS) - 10.1ms rendering, 3.3ms sorting. 2.1GB VRAM usage.
- Unity, DX11: 21.8ms (46FPS) - 9.9ms rendering, 11.9ms sorting.
- Official SBIR viewer: 7.4ms (135FPS). 4.8GB VRAM usage.
- Mac (Apple M1 Max):
- Unity, Metal: 80.6ms (12FPS) - with FidelityFX GPU sort.
- Unity, Metal: 108ms (9FPS) - with bitonic GPU sort.
Unityでの可視化までの流れ
まず,コードをgithubからClone してきましょう.
https://github.com/aras-p/UnityGaussianSplatting.git
学習済みモデルはこちらをDawnLoadしましょう.(1.4GB)
このコード自体は,UnityのVersionが2022.3.7f1を使用しているので,このVersionを持っていない場合はダウンロードしましょう.
Versionをダウンロードしたら,以下のSceneを立ち上げましょう.
するとHierarchyにGaussianSplatsというObjectがあると思います.こちらが今回使うものになります.
GaussianSplatsのInspectorを見るとData Asset という項目があると思います.
こちらにGaussian Splat Assetを入れます.
Gaussian Splat Assetの作り方
学習済みモデルをUnityのほうに入れていきましょう.
まず,以下のToolの中にCreate Gaussian Splat Assetがあると思います.
Create Gaussian Assetを開きましょう.
するとこのような設定画面が開きます.
この中のInput Folder に学習済みモデル済みモデルを設定します.
<0dc30c24-4が学習済みモデルのフォルダ>
D:\NeRF\gaussian-splatting\output\0dc30c24-4
このようにフォルダ名が入ると思います.
次に以下のCreate Assetを押して,Unityに入れていきましょう.
処理が終わると以下のようにGaussianAssetsができると思います.
以下のようにassetをData Asset の中に入れましょう.
入れるとこのように表示されると思います.
以上がGaussian-SplattingをUnityで見る方法になります.
一つ前のバージョンの場合
GaussianSplatsのInspectorを見るとPoint Cloud Folder という項目があると思います.
こちらに学習済みモデルが入っているフォルダを選択します.<0dc30c24-4が学習済みモデルのフォルダ>
D:\NeRF\gaussian-splatting\output\0dc30c24-4
こちらを設定して,UnityのPlayButtonを押すと
このようにSceneが見れるようになると思います.
以上がGaussian-SplattingをUnityで見る方法になります.
Discussion