我有一个游戏创意,需要对围绕各种物体流动的流体进行一些半真实的模拟。想象一个不规则表面上的水银池,向各个方向倾斜。
这是一款游戏,因此不需要 100% 的物理真实感。最重要的是,计算可以在具有 iPhone 马力的设备上实时完成。
我在想某种细胞自动机或粒子系统是要走的路,但我不知道从哪里开始。
有什么建议么?
我有一个游戏创意,需要对围绕各种物体流动的流体进行一些半真实的模拟。想象一个不规则表面上的水银池,向各个方向倾斜。
这是一款游戏,因此不需要 100% 的物理真实感。最重要的是,计算可以在具有 iPhone 马力的设备上实时完成。
我在想某种细胞自动机或粒子系统是要走的路,但我不知道从哪里开始。
有什么建议么?
Lattice-Boltzmann 方法是一种以离散的、类似元胞自动机的方式模拟流体的非常常见的方法。
但是,为了在 iPhone 上实现实时性能,将流体模拟为粒子系统然后想办法将粒子渲染为体积质量可能会更有效。我怀疑这是Aqua Forest等游戏所采用的方法。
这不是我的研究领域,但我相信这被认为是规范的工作:
计算机图形学的流体模拟
https://www.routledge.com/Fluid-Simulation-for-Computer-Graphics/Bridson/p/book/9781482232837
另外,看看伯克利动画和建模组
https://web.archive.org/web/20090116020253/http://www.cs.berkeley.edu/b-cam/
我还推荐使用 Google Scholar 或 Citeseer 之类的工具来研究学术文献。
粒子系统可能是一个很好的起点。沿着这些思路,您可以将 SPH(平滑粒子流体动力学)视为一种更加物理的流体模拟方法,它仍然依赖于粒子。
还有一条评论:流体模拟是数值并行编程和超级计算机,或者至少是高功率、多核桌面的东西。iPhone可能不会削减它。
带有颗粒的 SPH 可能是最快启动和运行的,它在可扩展到粘弹性材料和其他材料方面处于领先地位。明天我将在我的博客上发布我过去几天一直在写的关于这个主题的指南。( http://blog.brandonpelfrey.com )
我想知道您是否正在考虑像Archer Maclean 的 Mercury或PSP的Mercury Meltdown之类的东西。
据我所知,在游戏De Blob中,一个彩色的“blob”在白色环境中移动,为它撞到的物体着色。当我阅读您对您似乎想做的事情的描述时,不知何故在我脑海中触发了这一点。(实际上没有玩过游戏,所以我不知道它有多适合。)
话虽如此,我似乎记得在那个游戏中,blob 的流动性主要是人为的:基本上是一个球体,它的一些轻微的大小/形状变换,一些运动提示和添加的“流畅的声音”给玩家的印象不太稳固的东西是游戏的主角。不涉及实际的物理或模拟类型编程。
听起来很适合 iphone 可运行的软件。这对你来说可能就足够了吗?
基于网格的 Navier-Stokes 解决方案总是更快,并且计算速度是恒定的。