流体模拟是如何集成到刚体物理引擎中的?

11

1) 有没有证据表明混合刚体物理和流体(例如SPH)的模拟可以提供真实世界的建模?
2) 这样混合帧是如何工作的?

假设我们在盒子里有一个木秋千,里面有两种不同的液体(油和水)和一个软体——球。起始状态如下图所示: enter image description here

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

以下是我目前在头脑中看到的(请告诉我是否错误)

  1. 我们拥有所有物体和流体在状态(*)。
  2. 现代引擎如Bullet支持软体和刚体-因此我们可以在RB\SB物理引擎中加载(*)并制作一个框架。
  3. 取出所有顶点,并将它们的位置与上一帧进行比较。得到某种形式的矢量力场。
  4. 将我们的rb/sb在流体引擎中表示为具有来自我们力场的脉冲的粒子,处于状态(*)。
  5. 以与之前计算的矢量场相对应的密度将RB和SB加载(*)为粒子。
  6. 在流体引擎中制作一个框架。
  7. 根据粒子的移动更新rb/sb位置-获取新状态(**)。

至少在理论上,对于当前GPU上的简单情况,这可能以接近实时的速度计算出来……但我想知道这会使系统多么不真实?


问题始于像碰撞这样的相互作用...因为你需要一次性与所有碰撞的粒子进行交互,这有时非常困难,特别是在循环相互作用(当粒子1与2、3、4、5等相互作用,并且其中一些以非直接-反作用力方式回到1)时,精度(真实性)会迅速降低...大多数物理引擎都是为游戏而设计的,因此它们用计算速度代替了准确性...对于“精确”的模拟,有限元和/或场方法更好。至少在我看来。 - Spektre
你需要这个做什么?游戏?科学模拟?为了真实地模拟流体中的粒子相互作用,计算成本非常高。 - webuster
科学模拟 - DuckQueen
2个回答

0

这并不需要进行粒子级别的计算才能达到真实感。黏性CFD和流体结构相互作用将以非常合理的准确度给出系统的行为。像COMSOL或Ansys这样的软件包可以在几个小时内为您提供答案。但是,如果您需要实时动画显示,您需要简化一下问题。您在评论中说您正在进行科学模拟,因此我认为您正在寻找每秒帧数上的准确行为。


0

看起来这个问题似乎没有得到足够的关注,所以我在这里提供我的意见。
快速的谷歌搜索显示出宾夕法尼亚大学的演示文稿和东京大学的论文。它们可能包含你正在寻找的一些信息。


今天两个链接似乎都失效了。 - Sebastian Höffner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接