流体游戏怎么玩

流体游戏怎么玩

1、【专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息。最近一直在研究流体模拟,很神奇的一个东西,好在网上有很多参考资料,研究过程不算太困难。分享下最近一段时间的学习心得。

2、://。//3==。://。//13==。

3、游戏领域实现流体模拟的几种常见方式有:基于网格的方法:在网格上模拟,每个格子都有自己的数据,速度、密度、颜色、温度等,逐帧更新格子内数据。这种方法的优点是方便多线程实现,渲染也很方便。缺点是计算过程中需要对参数做估算,容易产生误差。基于粒子的方法:将流体具象化为很多个粒子,每个粒子都有自己数据,速度、颜色、温度,逐帧更新粒子的位置。

4、这种方法的优点是误差小,能表现出更多的流体细节。缺点是不利于多线程实现,渲染也比较麻烦。这篇文章采用的是基于网格的方法,流体有很多种类,气体、水、岩浆、蜂蜜等,不同流体使用的算法各有差异,这篇文章讨论的是气体流体模拟。在流体模拟中,有两个主要计算过程,压缩解算和流动。

5、压缩性是流体的基本属性之一,正常环境下,大多数流体都很难被压缩,向流体施加很大的力,而流体的体积变化却很小。压缩解算的目的,就是要模拟流体很难被压缩的特点,假设我们在一个88的网格上做流体模拟:。

流体游戏怎么玩

1、先在格子边框上创建辅助点,水平方向辅助点为黄色,垂直方向辅助点为绿色:。拿中间几个格子举例,每个格子都有自己的速度:。将格子的速度拆分到周围4个辅助点上,水平速度存入黄色点,垂直速度存入绿色点:。

2、然后根据格子周围4个辅助点的速度,对格子做压缩解算:。上图的格子有三个方向在流入,一个方向在流出,流入量大于流出量,要使流体不被压缩,流入量和流出量必须相等。

3、先计算净流入、流出量将其均分后修改辅助点速度:。这样就保证了这个格子流入和流出量相等。再看一个流体遇到障碍物的例子:。格子的右边是一面墙,所以右边黄色点的速度始终为0,压缩解算的公式变为:。

4、我们可以为每个辅助点附加一个,障碍物的为0,非障碍物的为1,这样一来,有无障碍物都可以使用同一个公式:。最后,计算辅助点速度的平均值,更新格子速度:。一个格子速度发生变化,其临近格子的流入、流出量也会改变,这里我们需要迭代多次去逼近正确解:。这样,压缩解算就完成了。

5、更新完格子的速度后,就可以移动格子内的数据了。最直观的做法是,根据格子的速度,计算出它移动到了哪个位置,然后把它的数据,密度,速度等,加入到新格子中。

  • 声明:本文由湖序游戏攻略网独家原创,未经允许,严禁转载!如有侵权请邮箱联系352082832@qq.com