Spark - Three.js向け高機能3D Gaussian Splattingレンダラー
(sparkjs.dev)- THREE.jsレンダリングパイプラインと連携し、splatおよびmeshベースのオブジェクトを一緒に表示
- 移植性に優れ、ほぼすべてのデバイス(WebGL2対応率98%以上)で動作
- モバイルの低スペック端末でも高速なレンダリング性能を提供
- 複数のsplatオブジェクトを同時にレンダリングし、ソートも正しく処理
- .PLY(圧縮含む)、.SPZ、.SPLAT、.KSPLAT など、主要なsplatファイル形式のほとんどをサポート
- 複数視点での同時レンダリング機能をサポート
- 動的編集: 各splatオブジェクトを個別に変換し、アニメーションを適用可能
- リアルタイムの色編集、変位、スケルトンアニメーションをサポート
- Shader graphシステムにより、GPU上でsplatを動的に生成・編集可能
1件のコメント
Hacker Newsのコメント
とてつもなく印象的なデモだという感想を持った。古いiPhoneでも問題なく動く
本職の3Dプログラミング知識があまりない趣味のゲーム開発者としてフィードバックすると、GitHubかWebサイトのどこかに「Gaussian Splatting」とは何かを1行で説明してあるとよさそう
Wikipediaの説明を1行読んで、さらに興味と可能性を感じた
Gaussian Splattingは、ボリュームデータをサーフェスやラインのプリミティブに変換せず、直接レンダリングするボリュームレンダリング手法
高性能な雲、炎、煙などを作れる点が本当にすばらしい
FAQはぜひ追加しないといけないと思った
食べ物のスキャンデモ(「Interactivity」の例)がすごい
特にMel's Steak Sandwichでパンの穴の中をのぞき込めるのが印象的
ノートPCが内蔵グラフィックスだけでも、見えているディテールに対して性能は非常によく出ている
こういう技術は今、主にどこで使われているのか気になる
小型の物体をハンドヘルド機器やドローンでスキャンするコミュニティがある
今回のデモではTipatatが食べ物のスキャンを提供してくれた
私はkotohibiの花のスキャンも気に入っている
https://superspl.at/user?id=kotohibi
これだけのディテールなのに、データ転送量がそれほど大きくない
だいたい80MB程度で、本当に驚き
本当にすごい
BabylonJSもGaussian Splatをかなりうまくサポートしている
https://doc.babylonjs.com/features/featuresDeepDive/mesh/gaussianSplatting
Aframeのほうが新しいプロジェクトで、ゲームとVRにより注力している
Babylon、Aframe、Three.js、PlayCanvasをすべて使ったことがある人の視点では、どう比較されるのか気になる
PlayCanvasは商用寄りだが、最も成熟していて機能が豊富で性能も高い
Babylonは機能重視の3Dエンジンで、Three.jsは基本機能のみを提供する
アニメーションやテクスチャ対応はよいが、結局は自分でツールキットを作る必要がある
これらのエンジンでよかった体験、そうでなかった体験が知りたい
OPのデモは本当に堅牢
Aframeの強みや売りは何なのか気になる
Gaussian Splattingの未来がどう展開するのか、単なる可視化やデジタルツイン産業だけでなく、クリエイティブやゲーム分野でも編集やアニメーションが近いうちに可能になるのか気になる
Aframe GitHub
PlayCanvas
すばらしい仕事
ただ、私のノートPCのNvidia RTX A3000 GPUとFirefoxの組み合わせでは性能が非常によくない
この程度のシェーダーコアがあるなら、触るとやけどしそうなくらい熱くなるかもしれない
スマホを持って走り回りながら、grass、bushes、dirtのようなGaussian Splatsをキャプチャできるのだろうか
1メートル四方の地面パッチ、低木を含む1メートル立方の空間を選んで
草ブロックを繰り返し配置し、低木や土などを間に混ぜて「Minecraftっぽい」世界を作れるのか気になる
何千ものブロックをレンダリングするには、かなり強力なハードウェアが必要そう
実際に見たら本当にかっこよさそう
本当にすごい
もし現時点での性能ボトルネックについて知見があれば聞きたい
特にダイナミックシーンでのボトルネックが気になる
パーティクルシミュレーションの例はカクつくが、カメラを回すと急に性能がよくなる
これは静的背景部分が思った以上に重かったことを意味するように見えるが、それとは別にSierpinskiピラミッドはプロシージャル方式で本当に印象的
おそらく、質問者がカメラをより複雑でない方向に向けたからかもしれない
性能を一定に保つ点は、まだ改善の余地がある
今後はLODシステムを適用するつもり
もう少し目立つrepoリンク案内
https://github.com/sparkjsdev/spark
Gaussian Splattingがデモ以上のことをできるのか、今でも懐疑的
ファイルサイズが大きすぎる
例えばステーキサンドイッチが12MB
昨年のSIGGRAPHでGaussian SplatベースのMatterport移植クローンを見たが、2ベッドルームのアパートを見るのに1.5GBのストリーミングが必要だった
クールなデモではある
SOGS圧縮手法は効果的
フルの球面調和関数(Spherical Harmonics)込みで1M Gaussianを約14MBで保存できる
PlayCanvasのブログに関連するよい記事がある
https://blog.playcanvas.com/playcanvas-adopts-sogs-for-20x-3dgs-compression
参考までに、12MBのステーキサンドイッチが最大のファイル
ほかは10MB未満で、いくつかは1〜3MBとかなり説得力がある
(例: Iberico Sandwich 1MB、Clams and Caviar 1.8MB など)
SOGSのような高度な圧縮方式もまもなく登場予定
この例は30MB
https://vincentwoo.com/3d/sutro_tower/
ファイルが大きい主な理由は、Spherical Harmonics係数を保存するため
解決可能な問題
名前が少し使いすぎな気がする
すでにApache Spark、SPARK(Ada)、sparklines、SPARQLなどがある
https://en.wikipedia.org/wiki/SPARC