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