如何使用PhysX数据计算韦伯数?

时间:2015-02-08 15:12:03

标签: c++ physics game-physics physx

我正在使用PhysX作为基础物理解算器(使用它的SPH模拟)开发非真实感水渲染演示,并希望添加泡沫和液滴渲染以增强其视觉效果。

首先,我使用相邻粒子的数量作为阈值将它们分成组(水,泡沫和液滴),并以不同的方式呈现每个组,但是阅读一些研究论文我得出的结论是更多基于物理的方法会更好,因此输入韦伯数字。

以下参数用于获取韦伯数,所有这些都与某个粒子或整个流体相关:

  • 密度
  • 相对速度(相对于周围空气)
  • 特征长度
  • 表面张力

密度和相对速度由PhysX提供,我已经知道了。虽然密度是浮点值,但速度是3个浮点值的向量,一个用于3D空间的每个轴(x,y和z)。没有提供特征长度和表面张力,坚韧(或者如果提供它们我不知道如何获得它们)。

所以,我的问题是:

  • 我认为Weber Number必须是一个浮点值,所以我可以用它作为阈值将粒子分成几组。这里的第一个问题是,要获得它我需要使用PhysX提供的相对速度,它是一个具有3个浮点值的向量。如何获得此向量的单个浮点值,以便在给出韦伯数的等式中使用它?
  • 阅读一些研究论文(特别是this one,在3.2.1节中)我决定使用固定值来表示粒子的特征长度和表面张力。问题是,我应该使用哪些值,并假设这些值有理想值,我怎样才能达到这些理想值?

1 个答案:

答案 0 :(得分:1)

在不了解您的应用程序的情况下,通常使用像Weber这样的无量纲数字将系统分类为低价值或高价值体系。对于这些应用程序,确切的值并不重要。关键在于,高值表示情况与低价值情况在质量上不同。当然,当数字介于两者之间时,这就成了问题,即。团结一致。 对系统进行分类的优点是,它允许您进行近似,通常可以简化所涉及的公式。

由于您似乎只使用Weber的数字进行分类,我认为这也与您相关。

因此,要从物理背景中回答你的问题,特别是考虑到你并不是为了实现现实主义,使用近似值来对情况进行分类以简化计算似乎很好地利用了像韦伯那样的无量纲数字(可能还有其他人) )。

  • 对于力度,您可以使用向量的绝对值。
  • 对于特征长度,您应该使用液滴/泡沫气泡尺寸,因为这似乎是模型中长度的唯一衡量标准。

特别是,我不会太担心“理想价值”。近似值对于大/小值是有效的(取决于所需的准确度/真实性,例如> ~10和< ~0.1),因此2 off的因子将不会在分类中产生差异。如果确实如此,那么近似值无论如何都是无效的。