>100 Views
February 20, 26
スライド概要
イベント名:3DGS Meetup vol.1
日時:2026年2月15日(土)14:00〜
会場:HoloLabオフィス
主催:3DGS Meetup 運営委員会(にー兄さん、komanbe、いっちー、そら、イワケン)
connpass:https://3dgs-meetup.connpass.com/event/378917/
3DGS Meetup は、3D Gaussian Splatting に関する「実践の知見」を共有 & 交流するミートアップイベントです。 業務・制作・開発の現場で実際に手を動かす中で生じる 課題や判断、工夫や試行錯誤といった、実践の文脈で立ち上がる課題解決や知見にフォーカスします。
・3DGSをVRChatに持ってくるとは? ・実際の実装でやったこと ・Spatialographyワールドの各作例について ・Spatialograph Makerについて
(以上、2024年VRCエンジニア集会でのスライドから抜粋) Spatialographyワールドに繋がっていく
実際のコンバート処理の実装とシェーダー (Spatialograph Maker for Unity) ・VRChatで表示することが目的 → built-in RPの標準カメラ → splatを板ポリとして描画 ・PLYファイルを読み込んで必要なデータをテクスチャに焼き込むエディタ 拡張 ・各splatの位置、回転、スケール、カラー、透明度 ・球面調和関数については、見る方向によって色が変えられるという 3DGSの大きな特徴ではあるが、データサイズとのバランスを考えてオプ ションとして対応。標準ではSH0までの対応。
実際のコンバート処理の実装とシェーダー (Spatialograph Maker for Unity) ・ソート問題 3DGSでの重要トピック。大量のsplatsをリアルタイムでソートしなければ ならない。 → 私の場合、たくさんのシーンを並べて展示したかった → 極力軽くするため、事前ソート方式 ・事前ソートにより速度の問題が解決できたとして、今度は容量の問題。 事前ソートする視点の数だけデータを持たせる必要がある。 → 見た目の自然さ、データ容量、(実装の楽さ)でバランス
実際のコンバート処理の実装とシェーダー ・X,Y,Zそれぞれの正負方向からで処理を切り替える ・Y軸ソートした実データを保存、X,Z軸についてはIDだけを保存 ・これらをTexture2DArrayに保存(16bit float) ・splats数と同数の、VertexIDだけを持った頂点を含むMeshを生成 Layer0: 位置 Layer1: カラー+透明度 Layer2: スケール Layer3: 回転 Layer4: X,Z軸ソート時に参照するUV座標(X=RG, Z=BA)
実際のコンバート処理の実装とシェーダー ◆シェーダー側 ・Y軸ソートで描画する場合: VertexIDの順にLayer0からLayer3の情報をそのまま使う ・X軸ソートで描画する場合: VertexIDの順に、まずLayer4のR,Gチャンネルを読み、そこに書かれている UV座 使ってLayer0~Layer3の情報を取得する 標を ・Z軸ソートは同上で Layer4のB,Aチャンネルを読む ・各軸マイナス方向から見る場合は読み込み順を逆にする 位置 色 スケール 回転 UV座標マッピング
実際のコンバート処理の実装とシェーダー ◆シェーダー側 ・視点の位置と方向で事前ソートを切り替え。 ・視点がsplats群の内部に入る場合も考慮。 ・弱点としては切り替え時に POPする ・もっと効率化を求めるなら、 各レイヤーごとに異なるテクスチャフォーマットにする? →ハンドリングのためにひとつにまとめたかった。 splatsオブジェクトをどこから見ているのか? あるいは32bit floatにしてもっとぎちぎちに詰め込む? →実装面倒そう!
これでひとまず3DGSをVRChatで表示することができた。 そして本当にやりたいのはその先、 作った3DGS(フォトグラメトリ)をどう使うのか、何に使うのか。 入り口は増えてきたけれど、出口の問題。 そういったことを考えつつ、Spatialographyワールドが出来まし た。
Spatialographyワールド作例 https://www.youtube.com/watch?v=dthljpmyvhU ◆額縁タイプ ・絵画調に寄せている(寄せてないのもある) ・筆のタッチっぽく見せる工夫 ・従来の平面作品での構図の概念はどうなるだろうか?
Spatialographyワールド作例 ◆空間切り取りタイプ ・空間のどの部分を、どういうスケールで、どのような形状で切り抜くと作 品として良くなるのか。構図のセオリーは?
Spatialographyワールド作例 ◆空間切り取りタイプ ・ジオラマ的ではあるけれど、元が実空間である点が新しいと思う。それは つまり撮影の時点からどう切り取るかを考えて撮影する必要があるというこ と。 ・全体を撮っておいて後で切り取りを考えると いうのもアリと思うが、VR的に中に入って見 るのか、外側から見るのかというのは、個人 的な感覚では制作にあたって最初に決める べき重要な分岐点のひとつと思う。
Spatialographyワールド作例 ◆中に入ることができるタイプ
Spatialographyワールド作例 ◆いろいろ動かしてみるタイプ ・シェーダー芸 + インタラクション
Spatialograph Maker (beta for Unity) BOOTHで公開済み https://booth.pm/ja/items/7684707
Spatialograph Maker(webアプリ) https://www.spatialograph.app/ 切り取ったデータをPLYとして書き 出して先述のツールでVRChatへ も持っていける。 ガラスのシェル形状もジオメトリと して書き出せる。 https://x.com/VoxelKei/status/2016303080112062887?s=20
そして物理へ・・・ https://x.com/VoxelKei/status/2019357185214673271?s=20 https://x.com/VoxelKei/status/2019696514780860813?s=20
ありがとうございました! VRChat「Spatialography」ワールドリンク https://vrchat.com/home/launch?worldId=wrld_0ab57861-abb2-4802 -8783-4ae089ea268b 「Spatialography」ワールドの紹介動画 https://youtu.be/dthljpmyvhU?si=pNDxwBDa5c-DwfsW&t=677 Spatialograph Maker beta (for Unity) https://booth.pm/ja/items/7684707 Spatialograph Maker (webアプリ) https://www.spatialograph.app/