基于物理流体模拟(PFSPH和DFSPH)

本文深入探讨了基于物理的流体模拟,特别是Projective Fluid (PF)和Divergence-Free SPH (DFSPH)方法。介绍了开源库SPlishSPlasH,它支持多种SPH流体模拟方法和表面张力处理,适用于C++和OpenGL开发。文章详细阐述了这两种方法的算法流程、原理,并提到了环境配置和相关库的使用。
摘要由CSDN通过智能技术生成

  本文主要介绍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着

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值