2025年SPH(光滑粒子流体动力学)流体模拟实现:算法总览

SPH(光滑粒子流体动力学)流体模拟实现:算法总览流体模拟 一 流体模拟算法总体流程 流体现象广泛存在于自然界 日常生活以及工 业生产中 对流体的模拟即流体动画 一直是基于物理的动画以及计算机图形学的重要研究内容 目前 基于物理模拟的流体动画按照其空间离散化的不同方式主要分为两大类 网格法与无网格法

大家好,我是讯享网,很高兴认识大家。

流体模拟(一)

流体模拟算法总体流程:

流体现象广泛存在于自然界、日常生活以及工 业生产中,对流体的模拟即流体动画, 一直是基于物理的动画以及计算机图形学的重要研究内容。目前, 基于物理模拟的流体动画按照其空间离散化的不同方式主要分为两大类: 网格法与无网格法。网格法将模拟域离散到网格点,而网格点的物理属性值(如速度、密度等)通过求解控制方程获得;无网格法则是将流体体积离散到采样粒子, 每个粒子具有相应的物理属性, 粒子受控制方程作用 在空间中流动。无网格法具有质量守恒、无边界区域等优势,更容易模拟复杂现象(如卷浪、水滴、流体和固体运动等),在无网格法中, 基于光滑粒子流体动力学(smoothed particle hydrody- namics, SPH)方法由于计算简单高效, 成为最受关注的方法.

该方法可以产生十分真实的效果,下图是由该算法生成的效果。


讯享网

在构建流体的同时,我们不仅需要用物理仿真出粒子的运动,还需要模拟出良好的流体表面,在表面重建中,Marching Cube算法则是一种非常实用且高效的算法,因此我选择用SPH算法算出粒子运动后,利用Marching Cube算法重建表面,在最后还利用一个各项异性算法来实现表面的光滑效果。

下图是我们的程序流程图:

根据流程图,设计的效果如下图所示:

 

我们在加入一点简单的冯氏光照模型进行渲染:

加上一个天空盒之后其实发现效果还不错,但是最初版的Maching Cube重建出来的表面有比较大的问题就是颗粒感过于明显了,比如下图的静止图:

我们可以发现表面不是很平坦,然后看了Yu, Jihun这个人的“Reconstructing surfaces of particle-based fluids using anisotropic kernels”这篇文章,他提出了一个用SVD来给每个粒子进行旋转和附加缩放权重,来达到各个粒子各向异性的目的。这是论文中最重要的一点,图解如下图所示:

我们可以明显的看到改论文的主要方法就是改变了每个粒子的形态达到平滑的作用。

我根据他的方法完善了表面,如下图所示:

这就是流体模拟的一个总体思路。

下一章节就先介绍一下SPH(光滑粒子流体动力学)算法。

小讯
上一篇 2025-03-02 14:07
下一篇 2025-03-29 23:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/75551.html