流体模拟如何集成到刚体 phisix 引擎中?

Posted

技术标签:

【中文标题】流体模拟如何集成到刚体 phisix 引擎中?【英文标题】:How are fluid simulations integrated into Rigid Body phisix engines? 【发布时间】:2014-03-08 00:14:06 【问题描述】:

1) 是否有任何证据表明混合刚体 phisix 和流体(例如 SPH)的模拟可以为现实世界提供建模? 2)这种混合的框架是如何工作的?

假设我们在一个装有 2 种不同液体(油和水)和一个柔软身体 - 球的盒子内有一个 woden 秋千。开始条件如下:

我们如何模拟这种情况?用什么工具?

我目前如何看待它(如果我错了,请高举我)

    我们的所有身体和体液都处于状态 (*) Bullet 等现代引擎支持柔体和刚体 - 因此我们可以加载 (*) 并在 RB\SB phisix 引擎中制作框架。 获取所有顶点并将其位置与前一帧进行比较。得到某种形式的矢量力场。 将流体引擎中的 rb/sb at tate (*) 表示为带有来自我们力场的脉冲的粒子 加载 (*) 与 RB 和 SB 作为粒子,其密度对应于制造它们的材料,脉冲对应于先前计算的矢量场 在流​​体引擎中制作框架 根据粒子运动更新 rb/sb 位置 - 获取新状态 (**)

对于简单的情况,这至少在理论上可以用当前的流体 3 + 子弹 3 在 gpu 上近乎实时地计算……但我不知道这在多大程度上使系统不真实?

【问题讨论】:

问题始于碰撞之类的相互作用......因为您需要一次与所有碰撞粒子相互作用,这有时真的很难,尤其是循环相互作用(当粒子 1 与 2、3、4 相互作用时, 5 ...其中一些以非直接反作用力的方式交互回1)精度(真实感)下降得非常快...大多数物理引擎都是为游戏设计的,因此它们用计算速度代替了准确性...对于'精确的模拟是 FEM 和/或场方法更好。至少在我看来 你需要这个做什么?游戏?科学模拟?流体中的粒子相互作用在计算上是非常昂贵的。 科学模拟 【参考方案1】:

没有必要进行粒子级别计算来实现这一点。粘性 CFD 和流体结构相互作用将为您提供非常合理的准确度的系统行为。 COMSOL 或 Ansys 等软件包可以在几个小时内为您提供答案。但是,如果您需要对其进行实时动画处理,则需要稍微简化一下问题。您在 cmets 中说您正在进行科学模拟,所以我假设您正在寻找每秒帧数的准确行为。

【讨论】:

【参考方案2】:

看来这个问题没有得到足够的重视,所以我只是在这里投入我的 2 美分。 快速的谷歌搜索显示来自宾夕法尼亚大学的this presentation 和来自东京大学的this paper。他们可能有一些您正在寻找的信息。

【讨论】:

截至今天,这两个链接似乎都已断开。

以上是关于流体模拟如何集成到刚体 phisix 引擎中?的主要内容,如果未能解决你的问题,请参考以下文章

Qt 5.10 集成 Box2D 物理引擎

物理引擎

Bullet引擎刚体类 —— btRigidBody

创建简单的Nape刚体

p2.js物理引擎学习

Box2d刚体轨迹预测