关键词:
SPH方法
流体模拟
边界处理
对称区域
表面张力
CSF方法
表面粒子提取
反向插值
摘要:
流体模拟作为计算机图形学的重要分支,已被广泛应用于影视特效、军事模拟、动画制作以及医学等领域;但目前仍然存在很多问题需要研究,例如,流体的固壁边界处理、表面张力计算、固体入水的移动边界处理等,对这些问题的研究,不但具有理论意义,而且具有很强的实际应用价值。本文在阅读和分析了大量相关文献资料的基础上,对上述问题进行了研究。本文首先介绍了流体的固壁边界处理、表面张力计算、固体入水的移动边界处理的历史背景及研究现状,然后对此开展了以下三方面的工作:一、边界力法和虚粒子法是处理固壁边界的常用方法。边界力法通过对铺设在边界上的粒子施加排斥力防止粒子穿透,但边界力的计算限制了模拟速度。虚粒子法在边界处生成虚粒子,随着粒子数的增加所需的虚粒子数也随之增加,导致计算速度下降,且会出现流体与边界分离的现象。为此,本文提出一种对称区域边界处理方法,在保证逼真度的前提下满足实时性要求,且随着粒子数的增加,该方法的耗时增长也明显比其他传统方法慢,更适合对复杂场景的模拟,同时避免了边界处流体与边界分离的现象。二、CSF(continue surface tension)方法是处理表面张力常用的方法,它将表面张力看作体积力进行计算,大大减弱了表面形状对曲率计算的影响,而事实上曲率的计算只与表面的形状有关。为此,本文对CSF方法进行改进,提出一种基于表面粒子提取的表面张力计算方法,与传统CSF方法相比,减小了计算曲率的误差,提高了计算速度。三、固体入水问题分为固体高速入水问题和固体低速入水问题,传统虚粒子法是处理固体入水问题的常用方法。传统虚粒子法通过在固体内部生成虚粒子来防止流体穿透固体;对于简单边界,例如圆形边界,由于虚粒子在边界内部均匀分布,处理效果较好;但对于复杂边界,例如尖角处,由于虚粒子在其内部无法均匀分布,导致固体边界各处由虚粒子产生的排斥力大小不一,流体与固体之间出现不均匀空隙、尖角处流体穿透固体的现象随之产生,且虚粒子法计算量大。由于固体高速入水与固体低速入水的模拟结果(是否有溅起的水花)不同,本文针对固体高速入水和固体低速入水问题分别对虚粒子法进行了改进。首先,针对固体高速入水问题,本文提出了一种改进的虚粒子法,改进的虚粒子法与传统虚粒子方法模拟时长相当,但不会出现上述问题,更适合复杂边界的处理。其次,针对固体低速入水问题,本文提出一种反向插值的压力计算方法,这种方法无需生成虚粒子便可有效处理运动边界与流体交互,该方法在保证逼真度的同时,提高了模拟效率,固体与流体之间不会产生空隙,同时适用于复杂的运动边界,且能保证动量守恒。