matsuoka-601氏使用 WebGPU 在 GitHub 上公开了一个实时描绘海洋运动的项目「WrebGPU Ocean」。
WebGPU Ocean
WebGPU Ocean 是一个利用 WebGPU 图形 API 来描绘逼真海浪和海洋运动的项目。尤其对海面细微变化和光线反射进行了美丽的表现,并且可实时运行。
- 模拟中实现了 MLS-MPM:在集成显卡上可实时模拟约 10 万个粒子,在合适的 GPU 上可模拟约 30 万个粒子
- Particle to Grid(P2G)阶段在计算着色器中实现
- 实现了基于用于交互式应用的基于粒子的流体模拟的平滑粒子流体动力学(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!
demo : https://t.co/Dm8QTxo6gO
repo : https://t.co/X0I484K4i5 pic.twitter.com/wW1Gn3pXEo— matsuoka-601 (@matsuoka_601) January 10, 2025
Github
WebGPU で実装したリアルタイム 3D 流体シミュレーションの紹介
浏览器DEMO