我正在开发一个使用 PhysX 作为底层物理求解器(使用它的 SPH 模拟)的非真实水渲染演示,并希望添加泡沫和水滴渲染以增强其视觉效果。
首先,我使用相邻粒子的数量作为阈值将它们分成组(水、泡沫和液滴),并以不同的方式渲染每个组,但阅读一些研究论文我得出的结论是,使用更基于物理的方法会更好,所以输入韦伯数。
以下参数用于获取韦伯数,它们都与某个粒子或整个流体相关:
- 密度
- 相对速度(相对于周围空气)
- 特征长度
- 表面张力
密度和相对速度由 PhysX 提供,我已经得到了。虽然密度是一个浮点值,但速度是一个包含 3 个浮点值的向量,一个用于 3D 空间的每个轴(x、y 和 z)。没有提供特征长度和表面张力,很难(或者如果提供它们我不知道如何获得它们)。
所以,我的问题是:
- 我相信韦伯数必须是一个浮点值,所以我可以用它作为一个阈值来将粒子分成组。这里的第一个问题是,要获得它,我需要使用 PhysX 提供的相对速度,它是一个具有 3 个浮点值的向量。如何获得该向量的单个浮点值以在给出韦伯数的方程中使用它?
- 阅读了一些研究论文(尤其是这一篇,在第 3.2.1 节中),我决定对粒子特征长度和表面张力使用固定值。问题是,我应该使用哪些值,假设这些值有理想值,我怎样才能得到这些理想值?