首先,我没有考虑这个。
我想知道如何在iPhone上制作一个简单的瀑布模拟到一些沙丘上。
事实证明,有几个人解决了移动水的问题,GameDev也多次接近这个想法。然而,所有这些解决方案似乎都是计算密集型的(这是有道理的,因为水是一种流体,流体力学是复杂的)。我对一个快捷方式很感兴趣,因为模拟是否准确并不重要,重要的是它看起来准确。
有人问在DirectX上使用(Navier-)Stokes模拟,使用1500个粒子。他说他的结果参差不齐。当然,在iPhone上,这将是一个OpenGL ES实现的东西。
另一个优秀的灵魂尝试使用花栗鼠的物理引擎,但对我来说这听起来就像用一辆坦克去杀死一只蚊子,它仍然带来了很多很多粒子的问题。因此,我现在想知道是否合理使用类似于这种压力管理技术的技术,以管理流体的宏观状态,并管理带有粒子的边缘,以尽量减少总计算。
如果你有好主意,请提出测试的建议。
编辑08/06/2015:我在Thimbleweed Park博客中发现了Joseph Huckaby用HTML5完成的一个非常古老的技术的好例子。这只是与环境相关,因为这是关于外观而不是物理,但为什么不粗略地模拟流体,并用调色板循环效果覆盖"液体区域"呢?当然,由于这种技术更多地依赖于艺术元素,它将难度转移到了艺术家的领域。然而,渲染代码在混合时有点密集。
您可以使用从渐变中选择颜色的静态位图获得一些里程;
然后,你可以移动调色板(旋转),而不是动画的东西,并有流动的视觉效果。
当然,这样水的轮廓将是静态的。你可能会将这些想法与有限数量的"静态"轮廓动画帧混合在一起。
如果你主要关心的是性能,你可以不需要用户交互,也许更好的方法是在桌面上开发一个计算成本更高的解决方案,将其预渲染成视频或一组纹理,然后在移动设备上使用它,而不需要在那里生成它。
我知道这个解决方案是非常严格的,我只是想把它作为最坏情况下的一种变体,没有人能提出更好的建议。