最近开始学习的流体仿真,发现参考资料真的比较少,所以在此记录本人学习流体仿真的历程,希望以后可以坚持更新到我能完美的模拟出各种流体效果,也希望能给来看的人提供一些帮助。
最近在读《fluid engine development》这本书,真的很好用,读完了第一章,想基于作者给出的算法做出一个质点弹簧系统,但是由于个人原因,不想配置作者书上源码的各种配置,所以没有用作者的矩阵库,而是用的OpenGL常用的glm库。
同时推荐一个B站的OpenGL教学视频,这也是我学习OpenGL所看的视频。[最好的OpenGL教程之一。](https://www.bilibili.com/video/BV1MJ411u7Bc?from=search&seid=3848022905634451641)
虽然是英文版,如果听不懂只需要照着他的代码跟着写就可以了,基本不会报错的。
下面先放一个我模拟的效果视频。(顺便问下怎么做gif好用)
(https://img-blog.csdnimg.cn/20200929152415288.gif#pic_center)这个系统我只分析了重力和弹力,并没有添加阻力等,因为将系统实现出来,别的力再加进去就变得十分简单。
重力F = ma;
弹力根据胡克定律 F = -k*(L-L0);
在这里L是当前的弹簧长度,L0是弹簧未发生形变时的长度。K为胡克系数。
下面看具体的代码实现。
private:
//假定的每个质点的质量
float mass = 1.0f;
//弹簧不被拉伸时的长度
float r