7

一段时间以来,我一直在尝试使用从“游戏的实时流体动力学”中获得的算法来模拟流动的水。问题是我似乎没有用这些算法摆脱像水一样的行为。

我自己我想我做错了什么,那些算法并不都适合水状流体。

这些算法我做错了什么?这些算法完全正确吗?

我在bitbucket 存储库中有相关的项目。(需要gletools和最新的pyglet才能运行)

4

4 回答 4

6

基于体素的解决方案非常适合模拟液体,并且经常用于电影中。 Ron Fedkiw 的网站提供了一些学术示例——所有示例都基于网格。该代码支持 Pixar 和 ILM 使用的许多模拟。

SIGGRAPH 和他的网站上的 Robert Bridson 的流体模拟课程笔记也是一个很好的来源。他有一本书《计算机图形学的流体模拟》,详细介绍了液体模拟器的开发过程。

我可以对你的问题给出的最具体的答案是 Stam 的游戏实时流体专注于烟雾,即。在流体(水)和外部空气区域之间没有边界的地方。基本上烟雾和液体使用相同的底层机制,但对于液体,您还需要跟踪液体表面的位置,并在表面上应用适当的边界条件。

于 2009-05-01T03:43:44.973 回答
2

你想模拟什么类型的水?涟漪的水池,还是流动的液体?

我想我从来没有见过流水,除了渲染电影。涟漪水很容易做到,这个网站通常会出现在这类问题中。

于 2009-02-17T09:50:40.627 回答
2

Cem Yuksel 在 SIGGRAPH 2007 上发表了关于他的Wave Particles的精彩演讲。它们以相当低的成本提供了非常逼真的效果。他甚至能够模拟与盒子和船等刚体的交互。另一个有趣的方面是船的运动不是脚本化的,它是通过螺旋桨与流体的相互作用来模拟的。

Cem Yuksel 的波粒子
(来源:cemyuksel.com

在会议上他说他计划发布源代码,但我还没有看到任何东西。他的网站包含他在会议上展示的全文和视频。

编辑:刚刚看到您关于想要模拟流动液体而不是涟漪池的评论。这不适合那个,但我会把它留在这里以防其他人发现它有用。

于 2009-05-01T04:15:56.377 回答
1

是的,这种基于体素的解决方案只有在您的液体被限制在非常离散和静态的边界时才真正起作用。

为了模拟流动的液体,对粒子进行一些调查。最近在 GPU 上加速它们取得了很大进展,您可以获得一些惊人的结果。

看看http://nzone.com/object/nzone_cascades_home.html作为可以实现的一个很好的例子。

于 2009-02-17T10:11:02.873 回答