本文主要介绍SPH流体模拟的一个实现库SPlishSPlasH用法这里 ,这是Blender和实验室提供的开源库,利用C++,OpenGL开发的。该库包含五种流行的SPH流体模拟方法(DFSPH[2],IISPH[4],PBF[5],PCISPH[3],PF[1])和三种表面张力处理方法(Becker2007[6],Akinci2013[7],He2014[8])和六种粘度项处理方法(standard[9]XSPH[10],Bender2017[2],Peer2015[11],Peer2016[12])和两种旋度处理方法(MicropolarModel_Bender2017[13],VorticityConfinement[16])以及两种DragForce(Macklin2014[14],Gissler2017[15]).将文章放在参考文献中,方便大家查看。
实现动画截图
环境配置
需要在Cmake软件中生成工程文件(选择好自己使用的VS版本),此时生成一个build文件夹,用VS打开里面的SPlishSPlasH解决方案,生成->批生成,如下图选择debug和release点击生成。此时应该有一个文件中有问题就是GPU平行计算语句
#pragma omp parallel sections
,点开这个文件为其加上一个头文件
#include <omp.h>
就正常了(我当时没有截图,所以忘了具体出错的文件)
生成执行文件
工程刚打开时,默认的启动项是SPlishSPlasH静态库,需要将Demos下的Dynamic或者Static的项目设置成启动项,鼠标右键可以设置,因为在这两个项目中有入口函数main。
文件或函数介绍
1.MiniGL.h(.cpp)是一个小型的opengl库,可以绘制cube、mesh、point、vector等。
2.Shader.h(.cpp)是一个着色器程序,包含shader开档和灌uniform函数。是后续编写vertex和fragment着