3D Gaussian Splatting
3D Gaussian Splattingは、フォトリアリスティックなボリュメトリック点群をキャプチャしてレンダリングするための比較的新しい技術です。この技術はフォトグラメトリーに依存しているため、高品質なレンダリングシーンを非常に迅速、安価、かつ簡単に生成できます。
Gaussian Splatsの操作
スプラットの作成
スプラットはバイナリのPLYファイルに保存されます。独自のスプラットを生成するにはいくつかの方法があります。
1. キャプチャアプリを使用する
PolycamやLumaのようなスプラットキャプチャアプリを使用してください。Lumaでは、「Gaussian Splat」としてエクスポートし、ダウンロードしたZIPファイルからPLYファイルを抽出します。Polycamでは、「splat PLY」としてエクスポートします。
2. Inriaツールを使用する
InriaのSIGGRAPH 2023の論文は、一連の画像からスプラットを生成するためにダウンロードして使用できるGitHub上のツールセットにリンクしています。これらのツールはセットアップと使用がより複雑ですが、スプラット生成プロセスに対してきめ細やかな制御を提供します。
スプラットの編集
キャプチャされたスプラットは通常、ある程度編集する必要があります。生成プロセスでは、誤った位置にスプラットが作成されることがよくあるため(「フローター」と呼ばれることもあります)、これらの浮遊スプラットを削除できると便利です。また、キャプチャされたスプラット内の特定のオブジェクト(人物など)を分離し、背景を完全に削除することが望ましい場合もあります。
PlayCanvasは、SuperSplatという強力な3D Gaussian Splatエディタを提供しています。SuperSplatは、GitHubでMITライセンスの下でオープンソース化されています。
スプラットのインポート
PLYスプラットファイルをインポートするには:
- エディタのAsset Panelにドラッグします。
- 作成されたGSplat assetをViewportにドラッグします。これにより、Hierarchy内に、GSplat assetが割り当てられたGSplat componentを持つEntityが自動的に作成されます。
パフォーマンス
スプラットのレンダリングは、CPUとGPUの両方でコストがかかる場合があります。良好なパフォーマンスを達成するためのいくつかの戦略を以下に示します。
- シーン内のGaussiansの数に注意してください。すべてのGaussianはフレームごとにカメラの深度に基づいてソートされます。Inspectorを使用して、特定のGSplat assetに含まれる数を確認できます。SuperSplatを使用して、不要なGaussiansをPLYファイルから削除してください。
- Scene Settingsで
Anti-Alias
を無効にします。アンチエイリアシングはGPUに負荷がかかり、スプラットのレンダリングにはほとんどメリットがありません。 - Scene Settingsで
Device Pixel Ratio
を無効にします。これにより、GPUが処理する必要があるピクセルの総数が減少します。
制限事項
スプラットを扱う際に留意すべきいくつかの制限事項があります。
- フォグは効果がありません。
- ダイナミックライトは効果がありません。
- Image Based Lightingは効果がありません。