中年流体算法 和 模拟水墨特效( 二 )


本文插图
黑色折线为当前压力 。 绿色为与相邻网点的平均值 。
每个网点会尽量保证自己的压强跟周围的网点一致 。 压强的传播就代表流速的传播 。 根据液体粘稠度的不同 , 传播速度也会不同 。
维基百科:粘度 https://zh.wikipedia.org/wiki/%E9%BB%8F%E5%BA%A6
将这两个函数迭代一定次数后 ,进行 Gradient Subtract 梯度衰减
RenderTex 为将当前颜色输出到 Result 。 我这里做水墨黑白效果所以就直接反了个色 。
Splat 为用画笔写入颜色 。 传入鼠标位置 和绘制半径 ,根据当前网格与鼠标位置计算绘制的颜色和流速 。 传入一张笔触贴图作为控制 。
最终结果

中年流体算法 和 模拟水墨特效
本文插图
左边为流速图 ,右边为绘制面板 。

操纵杆依次为 笔刷大小 , 浓度 , 时间步长 , 迭代次数 , 液体阻尼 , 密度阻尼 , 颜色淡出 , 笔刷移动速度的影响 。
项目源文件:https://github.com/sacshadow/WaterEffectResearch
其他参考:http://www.cs.cmu.edu/~kmcrane/Projects/GPUFluid/paper.pdf
作者开发中的游戏:https://indienova.com/g/wjdr
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn