WebGPU 流体模拟:高性能与实时渲染 | Codrops

主要观点:

  • 作者通过 WebGPU 实现了两个流体模拟项目:WebGPU-Ocean 和 WaterBall,分享了实现过程中的技术和经验。
  • 流体模拟有粒子法、网格法和混合法,重点介绍了 SPH 和 MLS-MPM 两种方法,MLS-MPM 实现了在 iGPU 上实时模拟 100,000 个粒子。
  • 流体渲染有 Marching Cubes 和 Screen-Space Fluid Rendering 两种方法,作者选择了后者并详细介绍了其步骤,其缺点是计算成本随分辨率增加而增加。
  • 结合 MLS-MPM 模拟和 Screen-Space Fluid Rendering 可视化,在浏览器中实现了实时高质量流体模拟,WebGPU 使其高效且实用。

关键信息:

  • WebGPU 实现的流体模拟项目:WebGPU-Ocean 是可调整大小框内的流体模拟,WaterBall 是球体上的流体模拟。
  • 模拟方法:SPH 计算量大,MLS-MPM 避免了邻居搜索,性能更快。
  • 渲染方法:Marching Cubes 计算成本不受分辨率影响但有视觉伪影,Screen-Space Fluid Rendering 在屏幕空间渲染无需网格,计算成本随分辨率增加而增加。
  • 渲染增强:根据密度调整粒子大小、根据速度拉伸粒子、突出边缘以增强流体效果。

重要细节:

  • 在 WebGPU-Ocean 中可切换模拟算法比较性能,在 Mac 上切换到 SPH 会使模拟冻结。
  • WaterBall 在六年的 iPad Air 3 上运行流畅,实现了一些渲染增强效果。
  • 目前 WebGPU 支持在一些浏览器中仍有限,但随着采用增加,有望看到更多浏览器中的物理模拟。
阅读 39
0 条评论