✨ 3D Gaussian Splatting

2023年に登場した革新的な3Dシーン表現技術。
ガウシアン楕円体による高品質・リアルタイムレンダリングをブラウザで検証。

30+
FPS 目標
WebGL
レンダリング
.splat
ファイル形式
3DGS
技術

Splat ビューア

GaussianSplats3D によるブラウザレンダリング

🎯 FPS:
準備中

技術解説

Gaussian Splatting の仕組み

💡

3DGS とは?

3D Gaussian Splatting は、シーンを半透明のガウシアン楕円体の集合として表現する手法。 各ガウシアンは位置・共分散行列(形状)・色・不透明度をパラメータに持ち、 ラスタライゼーションベースのレンダリングによりリアルタイム表示が可能。

NeRF との比較

NeRF(Neural Radiance Fields)はレイマーチングベースで計算コストが高く、リアルタイム表示が困難。 3DGS はラスタライゼーションベースのため100倍以上高速で、 同等以上の画質をリアルタイムで実現。学習時間も大幅に短縮。

🔄

学習パイプライン

入力: COLMAP のスパース点群 + カメラパラメータ
初期化: 各点をガウシアンとして初期配置
最適化: 微分可能レンダリングで位置・形状・色を反復最適化
出力: .ply / .splat ファイル(数万〜数百万ガウシアン)

🌐

ブラウザ表示技術

GaussianSplats3D: Three.js ベースのWebGLレンダラー
ソート: CPU/WASM でスプラットを深度ソート
最適化: Octree カリング、LOD 対応
ファイル: .ply / .splat / .ksplat(独自圧縮形式)

📊

技術比較

特性 3D Gaussian Splatting NeRF 点群 (Point Cloud) メッシュ (Mesh)
レンダリング速度 ⚡ 30-200 FPS 🐢 0.1-5 FPS ⚡ 60+ FPS ⚡ 60+ FPS
画質 ★★★★★ ★★★★★ ★★★☆☆ ★★★★☆
学習時間 ⏱️ 5-30 分 ⏱️ 数時間〜 不要 ⏱️ 1-2 時間
ファイルサイズ 50-200 MB 5-50 MB 10-500 MB 5-100 MB
ブラウザ対応 ✅ WebGL ⚠️ 重い ✅ Three.js ✅ Three.js
編集性 ⚠️ 限定的 ❌ 困難 ✅ 容易 ✅ 容易

ワークフロー

写真から Gaussian Splatting まで

Step 1: 写真撮影

対象シーンの多視点写真を撮影(20〜200枚)。オーバーラップ60%以上推奨。

Step 2: COLMAP SfM

COLMAP でスパース再構成。カメラ位置とスパース点群を取得。

→ Phase 2 SfM 検証

Step 3: Gaussian Splatting 学習

COLMAP出力を入力として、3DGS を学習。GPU 環境で 5〜30分。

python train.py -s /path/to/colmap_output -m /path/to/output --iterations 30000

Step 4: ブラウザ表示

学習結果の .ply を .splat に変換し、GaussianSplats3D でブラウザ表示。