返回行业情报

VFX艺术家基于维塔研究开发高级白水求解器

VFX Artist Shared Advanced Whitewater Solver Based on Wētā's Research

VFX艺术家Alexander Vasilenko基于维塔研究院的白水模拟论文,开发了Guided Bubbles & Wet Foam Solver,解决了Houdini POP Fluid不支持可变粒子半径的缺陷。该求解器将气泡视为离散空气粒子,到达水面后转为泡沫并单独模拟,泡沫通过SPH模拟投影到水面二维流形上,并采用邻域体积乘数优化泡沫聚集效果。

深度解读

VFX艺术家Alexander Vasilenko基于Wētā FX的研究论文,在Houdini中开发了一套名为Guided Bubbles & Wet Foam Solver的高级白水求解器,其核心突破在于解决了POP Fluid长期不支持可变粒子半径的缺陷,让气泡与泡沫的模拟获得了更大的创作自由度。

这不是一次简单的工具迭代,而是对Houdini流体管线中一个结构性短板的正面回应。

被忽视的痛点:POP Fluid的粒子半径困局

Houdini的POP Fluid一直是流体模拟的主力工具,但它有一个被业内默认接受的限制:所有粒子共享统一半径。这意味着无论你模拟的是细密气泡还是大块泡沫,粒子尺寸必须一致。对于白水效果来说,这几乎是致命的——真实水体中,气泡从毫米级到厘米级共存,泡沫团簇的尺度差异更大。统一半径直接导致要么气泡过大失去细腻感,要么泡沫过小无法形成视觉冲击力。

Vasilenko的求解器直接绕开了这个限制,允许可变粒子半径。这看似只是一个参数开放,实际上改变了整个模拟的构建逻辑:艺术家不再需要为了迁就求解器而妥协视觉设计,而是可以先确定想要的气泡分布,再让求解器去适配。

从Wētā论文到可运行代码:气泡与泡沫的分治策略

这套求解器的理论基础来自Wētā的研究论文《Guided Bubbles and Wet Foam for Realistic Whitewater Simulation》。论文的核心思路是将气泡和泡沫当作两种不同状态的物质来处理:水下气泡被视为离散的空气粒子,当它们到达水面后,被转换为泡沫,并切换到另一套模拟系统。

Vasilenko忠实实现了这一分治架构。水下气泡系统包含局部重模拟流体,并对气泡施加双向耦合——气泡影响流体,流体也反过来推动气泡。这种双向耦合是真实感的关键,因为大量气泡上浮时会改变局部流场,而流场的变化又会重新分布气泡。

泡沫部分则采用SPH模拟,但并非在三维空间中自由运算,而是将泡沫粒子投影到水面的二维流形上。这个降维操作大幅降低了计算成本,同时保持了泡沫在水面铺展的视觉合理性。

一个关键的技术分歧:邻居体积乘数 vs 活跃粒子体积乘数

Vasilenko在实现过程中对Wētā的原始方案做了一个值得注意的修改。Wētā团队在计算内聚力时使用的是活跃粒子自身的体积乘数,而Vasilenko发现,使用邻居粒子的体积乘数能产生更好的泡沫团簇效果。

“使用邻居粒子会带来更好的泡沫聚集。”——Alexander Vasilenko

这个改动的物理直觉是:泡沫的聚集行为本质上取决于周围粒子的分布和体积关系,而非单个粒子自身的属性。当内聚力参考邻居体积时,大体积邻居对小粒子的吸引会更自然地形成团簇,模拟出真实泡沫那种“大团带小团”的聚集形态。两种乘数在求解器中都保留了,但默认推荐邻居方案。

流形投影的数学细节:切向保留,法向丢弃

泡沫被约束在水面上的方式值得单独拆解。Vasilenko描述了一个流形平流过程:将作用在泡沫粒子上的力分解为切向分量和法向分量,法向分量被直接丢弃,只保留切向分量驱动粒子在水面上滑动。随后通过牛顿迭代将粒子重新投影回水面。

这个流程的巧妙之处在于,它避免了泡沫粒子因为数值误差而“飞离”水面或“沉入”水下。丢弃法向力意味着泡沫永远不会获得垂直于水面的速度,而牛顿迭代则确保即使粒子因为切向运动偏离了曲面,也会被拉回来。对于水面这种动态变化的曲面,这种约束方式比简单的碰撞检测更稳定,也更符合泡沫“贴附”在水面上的物理直觉。

SPH力的完整实现:粘度、内聚力与表面摩擦

求解器实现了标准SPH框架下的多种力:粘度(mu)、内聚力(C控制强度,beta_c控制作用半径)、以及泡沫对水面的表面摩擦。

粘度控制泡沫流动的“粘稠感”——高粘度让泡沫像奶油一样缓慢铺展,低粘度则让泡沫快速散开。内聚力决定泡沫粒子之间的吸引强度,是形成团簇还是均匀分布的关键参数。表面摩擦则调节泡沫在水面上的滑动阻力,影响泡沫是被水流拖着走还是能相对独立地停留在原地。

这三个力的组合调参,实际上给了艺术家一套完整的“泡沫性格”控制面板:从轻盈易散的浪花泡沫,到厚重持久的船尾泡沫,都可以通过调整这三个参数来逼近。

所以呢:这对Houdini白水工作流意味着什么

对于Houdini FX艺术家来说,这套求解器的价值不在于它“又一个白水工具”,而在于它把Wētā级别的白水研究从论文变成了可操作的节点。Wētā的论文发表于学术语境,普通从业者很难直接复现;Vasilenko的工作是将其工程化、参数化,并针对Houdini的POP架构做了适配。

更值得关注的是可变粒子半径这个突破口。一旦粒子半径不再固定,白水模拟的创作空间就被打开了:同一套模拟中可以同时存在细密气泡和粗大泡沫,不需要再通过后期合成或多次模拟来拼接。这对于追求写实白水效果的项目——无论是影视还是高端游戏过场——都意味着更少的妥协和更短的工作流。

Vasilenko在LinkedIn上持续分享Houdini模拟成果,这套求解器目前的具体发布形式(商业插件、开源项目还是个人技术演示)尚不明确,但它所展示的技术路径已经足够清晰:Wētā的研究论文正在被独立艺术家逐篇转化为可用的生产工具,而Houdini的流体生态也因此变得更加完整。

其
软件技术Houdini白水模拟VFXSPH维塔研究