论文部分内容阅读
光滑粒子流体动力学(Smoothed Particle Hydrodynamics,SPH)方法作为一种基于物理的流体模拟技术,以其能够自动保持质量守恒、善于处理自由表面和固体边界、易于捕捉水花飞溅和泡沫等诸多优点,在过去十年中,吸引了越来越多的图形学研宄者,并被广泛应用于电影特效、商业广告、视频游戏以及军事仿真等领域模拟复杂流体现象。但是,SPH在模拟真实感流体时仍然存在着诸如施加不可压缩性时开销太大、采用固定时空分辨率时效率过低、固体边界粒子分布不均匀时模拟不稳定以及流固耦合时需要处理不同求解器之间的交互等问题。 本文对不可压缩S P H流体的图形处理单元(Graphic Processing Unit, GPU)并行加速方法、自适应加速策略、复杂边界处理算法以及流固耦合技术等问题进行研宄,主要工作包括: 1、基于GPU的不可压缩SPH流体并行加速方法。为了有效利用不可压缩 SPH方法所具有的数据并行特性,本文针对现代GPU架构设计了新的物理模拟流水线以及高效流体数据结构,同时改进了邻居粒子查找过程中的并行排序算法。在此基础上,提出基于GPU的统一粒子模拟框架,将所有模拟子过程全部运行于GPU上,充分利用了 GPU的大规模并行计算能力。该框架具有可扩展性和高效性,适用于各种SPH流体模拟方法的GPU并行化,为后续自适应加速策略、复杂边界处理以及流固耦合模拟提供了高效模拟框架。实验结果表明,本方法可以大幅提高不可压缩SPH流体模拟的性能,在高端GPU上能够达到60k粒子规模下34帧/秒的实时模拟速度。 2、基于休眠加速策略的自适应SPH流体模拟方法。传统基于SPH的流体模拟方法需要在每个时间步对所有粒子的物理属性值进行计算,虽然这种方法能够保证数值精度但效率不高,这是因为在有些场景中可以不用计算处于静止状态的粒子而且不会显著影响视觉效果。为了在流体粒子分辨率固定的情况下节省计算开销,本文引入休眠策略,将粒子划分为活跃粒子、中间层粒子以及休眠粒子等三种不同类型,通过忽略休眠粒子的所有物理计算以及中间层粒子的部分物理计算以达到加速的目的。此外,提出一种时间步长自适应选择算法进一步提高了整体模拟性能。实验结果表明,本方法与现有方法相比能够在不牺牲视觉真实感的前提下更高效地模拟流体现象。 3、结合边界粒子自适应采样的真实感SPH流体模拟方法。传统SPH方法存在流固交界面处邻居粒子数量少导致流体密度分布不连续的问题,现有方法通过对固体边界进行粒子采样,并在流体密度的计算过程中考虑固体边界粒子的贡献来避免该问题。但这类方法在边界粒子分布不均匀的情况下,容易造成固体边界非均匀采样区域流体密度计算不准确,甚至导致模拟不稳定。针对这一问题,本文提出一种复杂边界处理方法,将固体表面用双层边界粒子进行采样,并为每个固体粒子赋予一个质量权重函数。该方法实现了不可压缩流体在复杂固体边界处的稳定模拟,而且能够得到更真实的模拟结果。 4、基于隐式不可压缩SPH的流固耦合并行模拟方法。流体模拟和刚体模拟通常采用不同的求解器以及不同的几何表示,在模拟流固耦合时增加了软件的复杂性。针对这一问题,本文将隐式不可压缩SPH(IIS P H)流体模拟算法和基于双层表面粒子的刚体模拟方法相结合,在基于GPU的统一粒子模拟框架下真实模拟不可压缩流体与刚体的动态交互现象,充分利用了统一粒子模拟方法的数据并行特性以及GPU的大规模并行计算能力。实验结果表明,本方法可以高效模拟不可压缩流体与刚体之间的双向交互现象。