返回行业情报

WebGPU粒子模拟:实时流体视觉新探索

Fascinating Particle Simulation Created with WebGPU

艺术家Yi-Wen Lin使用WebGPU创建了迷人的粒子可视化作品。该实验将粒子速度数据存储于3D网格纹理中,实现逼真的粒子发光效果,粒子运动由流体模拟驱动。作品旨在探索WebGL难以实现的新能力,展示WebGPU将实时照明效果带入浏览器的潜力。

深度解读

艺术家Yi-Wen Lin用WebGPU在浏览器里实现了一个令人目眩的粒子模拟,其核心不是单纯渲染粒子本身,而是通过把粒子速度数据存进3D纹理来伪造出逼真的辉光效果,这标志着WebGPU正将实时全局光照级别的视觉体验从桌面端强行拉入浏览器时代。

这个作品最值得玩味的技术细节在于“用3D纹理存速度”这一招。传统WebGL做粒子特效,通常是在2D屏幕空间上做后处理模糊来假装辉光,或者用大量半透明Sprite叠加,性能开销极大且效果容易发灰、发虚。Yi-Wen的做法是反其道而行之:先把流体模拟计算出的每个粒子速度,按照它们的空间位置写入一个3D纹理(Volume Texture),然后在光照计算阶段,把这个体积数据当作一个廉价的光场代理——速度大的地方意味着流体运动剧烈,自然应该更亮、更“发光”。这本质上是一种数据驱动的光照近似,它跳过了复杂的光线追踪或光子映射,用物理模拟的副产品(速度场)直接驱动视觉亮度,达到了“看起来像全局光照”的效果,但计算成本只有传统方案的一个零头。

所以,为什么速度数据能当光照用?这背后是对流体视觉特性的深刻理解。在真实物理世界里,湍流、漩涡、高速剪切层确实会因摩擦和能量耗散产生更强烈的散射和辐射感。Yi-Wen不是在做物理正确的光照,而是在做视觉正确的欺骗——观众看到高速运动的粒子区域自然“亮”起来,大脑会自动脑补这是能量释放,从而产生强烈的真实感。这种“用模拟数据反哺渲染”的思路,比单纯堆多边形和材质要高级得多,它暗示了未来浏览器内3D内容的一个趋势:渲染效果不再是贴图的艺术,而是数据可视化的艺术

从WebGL到WebGPU:不是升级,是换赛道

要理解这个作品为什么非WebGPU不可,得先看清WebGL的物理天花板。WebGL基于OpenGL ES 2.0/3.0,它的设计哲学是“固定管线加可编程着色器”,但CPU和GPU之间的数据往返(Readback)极度缓慢,而且计算着色器(Compute Shader)是缺失的。这意味着在WebGL里做流体模拟,要么把模拟塞进片段着色器(Fragment Shader)里用纹理读写硬扛,要么就得把数据传回CPU算完再传回GPU——前者受限于纹理读写带宽,后者直接卡死在PCIe总线上。Yi-Wen的作品里,粒子运动由流体模拟驱动,这需要每一帧对成千上万个粒子做速度、压力、粘性的迭代求解,在WebGL环境下这基本是噩梦。

WebGPU彻底掀翻了这张桌子。它直接暴露了计算着色器接口,允许开发者像写CUDA内核一样在GPU上做通用计算,数据全程留在显存里,通过Storage Buffer3D Texture在Compute Pass和Render Pass之间高效流转。Yi-Wen把粒子速度写进3D纹理这一步,在WebGL里几乎不可想象——因为3D纹理在WebGL 1.0里根本不支持,WebGL 2.0虽然支持但绑定单元数量有限,且无法在Compute Shader里高效读写。WebGPU不仅支持,而且把3D纹理当作一等公民,配合非均匀纹理读取(Sparse Binding)和Group Memory,让“体积数据”这种在传统Web开发里极其奢侈的结构变得随手可用。这不是性能提升百分之几十的问题,而是一个数量级以上的能力跃迁

浏览器实时渲染的“iPhone时刻”

这个作品的意义远超一个“酷炫Demo”。它宣告了浏览器不再只是展示静态网页或简单CSS动画的容器,而是可以承载实时物理模拟+全局光照级渲染的重型计算平台。过去,要在网页上看流体模拟,要么用预烘焙的顶点动画,要么用低精度的2D伪模拟。Yi-Wen的作品证明,WebGPU配合现代GPU的硬件光栅化+通用计算能力,能让浏览器跑出接近本机原生应用(如Unity或Unreal的WebAssembly导出)的视觉质量,但开发门槛和分发成本却低得多——不需要安装任何插件,一个链接就能分享。

对游戏行业和数字艺术领域来说,这意味着一场分发革命。独立开发者不再需要为了让玩家看到效果而强迫他们下载几百MB的安装包;艺术家可以直接把交互式3D作品嵌入个人网站或社交媒体。80 Level这篇文章里提到的其他作品——Yong Su重制的WebGPU水模拟、James Kane的泳池场景、Dan Greenheck的海洋着色器——都在指向同一个方向:WebGPU正在催生一个“浏览器即引擎”的生态。对于从业者,尤其是前端工程师和创意开发者,这既是威胁也是机遇:威胁在于传统WebGL技能可能加速贬值,机遇在于掌握计算着色器、GPU内存管理和数据驱动渲染的人会成为新一代的“数字炼金术士”。

实时照明:从“看起来亮”到“亮得有理”

Yi-Wen自述一直着迷于全局光照和动态光照效果,这个粒子作品正是这种执念的产物。但要注意,他用的不是光线追踪,也不是光子映射,而是一种巧妙的近似。把速度存进3D纹理后,他计算的是“基于体积数据的廉价实时照明”——具体来说,可能是对每个粒子,在3D纹理中采样其邻域速度场,然后根据速度梯度或散度计算出该点的“能量集中度”,再映射为亮度或颜色。这种做法的精妙之处在于,它让光照效果与物理模拟的动力学特征直接挂钩:漩涡中心因为速度梯度大而格外明亮,流体边界因为剪切力强而呈现光晕。这种因果关系是纯粹的视觉欺骗,但观众感受到的是“物理正确”的震撼。

所以,这对实时渲染行业意味着什么?它意味着“全局光照”这个词的门槛在崩塌。过去,实时GI是显卡杀手级应用,需要屏幕空间反射(SSR)光追降噪辐照度缓存等一整套重型管线。但Yi-Wen的实践证明,在某些特定场景(流体、粒子、体积云),用模拟数据本身作为光照代理,可以在视觉上达到80%的相似度,而成本只有传统GI的5%。这种“数据即光照”的思路,很可能会被大量借鉴到游戏特效、数据可视化和虚拟制片领域——尤其是在移动端和Web端这种功耗受限的场景里,这种“作弊”几乎是唯一可行的实时GI方案。

对开发者:下一个五年的技能栈已经变了

看这篇文章的开发者,如果还在纠结“WebGL 2.0够用了”,那可能需要重新评估自己的技术路线图。Yi-Wen用的技术栈——WebGPU + 计算着色器 + 3D纹理 + 流体模拟——正在成为浏览器内高性能图形的新标准。Martin Laxenaire那篇关于计算着色器的教程,配合这篇文章里的案例,基本勾勒出了未来两年Web图形开发者的核心技能树:GPU通用计算、数据布局优化(Storage Buffer vs Uniform Buffer)、以及最关键的——如何把物理模拟的输出直接变成视觉输入

更深层的启示是,“渲染”和“模拟”的边界正在消失。传统管线里,物理引擎算完位置,渲染器再根据位置画图,两者是松耦合。但在Yi-Wen的作品里,模拟的速度数据直接参与光照计算,模拟和渲染成了同一个GPU Kernel里的不同阶段。这种紧耦合模式,会催生新的调试工具、性能分析方法和架构设计模式。对于独立开发者,这意味着可以利用WebGPU的跨平台特性(Windows、macOS、Linux、Android、iOS的浏览器都支持),用一套代码同时覆盖桌面和移动端,而无需像过去那样为不同平台维护多套渲染后端。

别只看到粒子,看到“浏览器即操作系统”

最后,把视角拉远一点。Yi-Wen的这个实验,以及80 Level持续报道的WebGPU内容,背后其实是一个更大的叙事:浏览器正在变成通用计算平台。WebGPU不仅仅是一个图形API,它本质上是一个GPU通用计算接口——你可以拿它跑神经网络推理(TensorFlow.js已经在做)、物理模拟、密码学计算,甚至加密货币挖矿(虽然不推荐)。当浏览器能直接调度GPU做通用计算,那么“网页应用”和“本机应用”的体验差距会急剧缩小。想象一下,未来在浏览器里运行一个完整的三维建模软件、一个实时协作的虚拟制片工具,或者一个大规模数字孪生系统,都不再是科幻场景。

所以,这篇文章里的粒子模拟,本质上是一个技术宣言:WebGPU已经成熟到可以承载艺术家的想象力,而接下来,它要承载的是整个行业的算力需求。对于还在观望的开发者,现在正是跳进WebGPU的最佳时机——因为当所有人都意识到这条路是未来的主干道时,你再去挤,就只能做路边的风景了。

AI前沿WebGPU粒子模拟流体模拟