-- Views
October 14, 25
スライド概要
Unreal Engine Meetup in Osaka Vol.04でのLTの資料です。
UE5で3D Gaussian Splattingを描画する手法の概要から、4Dへの拡張についてお話しています。
公演動画は下記リンクからどうぞ:
https://www.youtube.com/live/tcb7ZdoZ67A?si=odvOkV-g58itH6m-&t=11610
地域社会の安心に貢献し、暮らしやすい世の中をつくるために、主な事業として空き家専門の工事会社・不動産屋として空き家再生・活用に取り組んでいます。また、演劇教室「劇ゼミ」の運営、VR・AI技術開発も行っています。
な UE5 で 4D Gaussian Splatting を描画する 2025/10/12 Unreal Engine Meetup in Osaka Vol.04 株式会社空き家総合研究所 麻場 健司
麻場 健司 (𝕏:@KenjiASABA) • 株式会社空き家総合研究所 • 社員7人 • 関西の学生演劇の仲間で作った 会社 • 主な事業は3つ • 空き家再生 • 演劇教室 • VR・AI技術開発
麻場 健司 (𝕏:@KenjiASABA) • 株式会社空き家総合研究所 • 社員7人 • 関西の学生演劇の仲間で作った 会社 • 主な事業は3つ • 空き家再生 • 演劇教室 • VR・AI技術開発 演劇をデジタルデータ化したい! ≒ 4Dキャプチャ ≒ ボリュメトリックキャプチャ
3D Gaussian Splattingを 時間軸方向に拡張した4D版で メタバース的なことをやりたい 撮影データ提供:
3D Gaussian Splatting (3DGS) とは • 複数の写真 から 3Dモデル を作る技術。 写真 3Dモデル 3D Gaussian の集合で表現
3D Gaussian? = 3次元のガウス分布 1次元のガウス分布* − 2次元のガウス分布** 3次元のガウス分布** 𝑦2 𝑥2 𝑦2 𝑥2 𝑧2 − 2 − 2 − 2 α = 𝑒 2𝜎𝑥 ・𝑒 2𝜎𝑦 ・𝑒 2𝜎𝑧 𝑥2 − 2 − 2 2𝜎 α = 𝑒 𝑥 ・𝑒 2𝜎𝑦 α = 𝑒 2𝜎2 𝑦 𝑥 𝑦 = 0での断面 𝑧 = 0での断面 *原点が中心の場合 **原点が中心で軸の向きが座標系と一致している場合
たくさんの 3D Gaussian を重ねて描いて 3Dモデルを表現しよう!というのが3DGS 3個くらい 1,000個くらい 1,000,000個くらい 個々の3D Gaussianが、 ・Transform(位置、向き、サイズ) ・RGBA(色*と透明度) をデータとして持つ *色は実際には見る向きによる変化を表現するために、球面調和関数の係数としてデータを持ってる
3DGS を UE で描画したい…! • 作戦①:3D Gaussianを Niagaraスプライトレン ダラーで描画する • • 作戦②:3DGS描画処理 を独自に作成し、UE画面 にコンポジットする • • UE標準の描画処理の中で 完結する • • Niagaraのパーティクル数 の上限が100万個くらい。 それを超えると面倒なこと に… • 自由度が高い • • 実装が大変 • カメラ情報をとってきた り、UEの画面に合成した りするところで、UEの描 画処理の理解が要る
作戦①:3D Gaussianを Niagaraスプライトレンダラーで描画 たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく 「世界座標での3D Gaussian → スクリーン座標での2D Gaussian」という座標変換 を行う テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 +
作戦①:3D Gaussianを Niagaraスプライトレンダラーで描画 たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく 「世界座標での3D Gaussian → スクリーン座標での2D Gaussian」という座標変換 を行う テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 +
作戦①:3D Gaussianを Niagaraスプライトレンダラーで描画 たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく 「世界座標での3D Gaussian → スクリーン座標での2D Gaussian」という座標変換 を行う テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 +
作戦①:3D Gaussianを Niagaraスプライトレンダラーで描画 たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく 「世界座標での3D Gaussian → スクリーン座標での2D Gaussian」という座標変換 を行う テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 +
作戦①:3D Gaussianを Niagaraスプライトレンダラーで描画 たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく 「世界座標での3D Gaussian → スクリーン座標での2D Gaussian」という座標変換 を行う テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 +
作戦①:3D Gaussianを Niagaraスプライトレンダラーで描画 たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく 「世界座標での3D Gaussian → スクリーン座標での2D Gaussian」という座標変換 を行う テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 + 詳細はこちらの記事をどうぞ
3D → 4D に拡張する このデータを毎フレーム 変えればいい! たくさんの3D GaussianのTransformとRGBAの値 をテクスチャに書き込んでおく テクスチャのピクセル数分の パーティクルを生成 位置と色をパーティクルに設定 (これで点群として描画できる) + Gaussianの向きとサイズを考慮 して描画 +
4D な Gaussian Splatting データ取得が結構大変 × フレーム数 撮影データ提供:
データ撮影からUEでの描画までのワンストップな サービス化に向けて最終技術検証中… 描画 撮影 × フレーム数 + バーチャ ル・ ラ イン・ スタ ジオ株式会社 お問い合わせは 田中様まで