matsuoka-601氏がWebGPUを使用してリアルタイムで海の動きを描画するプロジェクト「WrebGPU Ocean」をGithub上で公開しました。
WebGPU Ocean
WebGPU Oceanは、WebGPUグラフィックスAPIを活用して、リアルな海の波や動きを描画するプロジェクトです。特に、海の表面の細かな変化や光の反射が美しく表現されており、リアルタイムで動作します。
- シミュレーションにはMLS-MPMを実装:統合グラフィックスで約10万個の粒子、適切なGPUで約30万個の粒子のリアルタイムシミュレーションが可能
- パーティクル ツー グリッド (P2G) ステージはコンピュート シェーダーに実装
- インタラクティブ アプリケーション向け粒子ベース流体シミュレーションに基づくSmoothed Particle Hydrodynamics (SPH)も実装(切り替え可能)
- GPU での高速近傍検索には、 FAST FIXED-RADIUS NEAREST NEIGHBORS: INTERACTIVE MILLION-PARTICLE FLUIDSで説明されているアルゴリズムを使用
- GDC 2010 スライドで説明されているスクリーン スペース レンダリングは、流体のリアルタイム レンダリングに使用
MLS-MPM
このプロジェクトでは、MLS-MPM(Moving Least Squares Material Point Method)という手法が使われています。
MPMは、「Material Point Method(マテリアルポイント法)」の略称で、流体や柔らかい物体の動きを計算するための手法です。この手法では、物体や流体を「粒子(ポイント)」として扱い、それらの動きをシミュレーションします。これにより、リアルな物理現象を計算することができます。
MLS-MPMは、MPMをさらに改良した手法です。「MLS(Moving Least Squares)」という数学的な手法を取り入れることで、以下のようなメリットを実現しています:
意外とサクサク動くもんなんですねぇ。WebGPUをサポートしているブラウザで動作します。
詳細は解説ページやGithubページをご確認ください。
リンク
WebGPU で実装した,MLS-MPM による流体シミュレーションをデプロイしました.ブラウザ上で動きます.SPH よりもかなり高速です./ A MLS-MPM fluid simulation in WebGPU has been deployed!
— matsuoka-601 (@matsuoka_601) January 10, 2025
demo : https://t.co/Dm8QTxo6gO
repo : https://t.co/X0I484K4i5 pic.twitter.com/wW1Gn3pXEo
コメント