论文部分内容阅读
海浪模拟是流体模拟的重要组成部分,其真实感、快速性和交互性等直接影响了航海场景逼真的程度。传统的海浪模拟方法存在诸如不能模拟逼真的船首浪、海面浪花飞溅、流固交互现象等不足。借鉴计算流体力学的物理模拟方法成为提高真实感效果的主要手段。光滑流体粒子动力学(Smoothed Particle Hydrodynamics,SPH)适于处理自由表面、捕捉浪花飞溅和泡沫等优点。针对SPH方法的GPU加速、流固耦合、水的不可压缩性、流体的表面提取、泡沫和浪花等五个关键点进行了深入研究,综合考虑海浪、浪花、泡沫、船舶与海浪的交互的真实感绘制要求,本文提出了一种基于SPH的海浪建模和绘制方法。针对SPH方法需要耗费大量的计算资源,提出了 SPH流体计算的CPU-GPU混合架构计算方法,整个物理模拟过程全部在GPU上实现,特别是GPU并行的邻域粒子搜索算法。通过典型场景溃坝的模拟,验证了本文提出的针对航海场景中海浪的物理建模所采用的GPU算法可大大提高了整体的模拟效率。针对航海场景中流固耦合现象存在的复杂边界问题,提出了一种基于排斥力法的固壁边界施加模型。采用统一粒子模型,将固体表面采样成边界粒子,让边界粒子参与物理计算,对连续性方程和动量方程进行改进,并应用于航海场景中流固交互现象的模拟。通过海浪与灯塔、救生圈、集装箱船的交互等航海场景的模拟验证了算法的有效性。流固交互算法能处理复杂边界问题,保证了动量守恒和不可穿透条件,真实地模拟了流体与固壁边界和刚体之间的交互。针对航海场景中不可压缩性流体实现效率低的问题,提出了基于松弛密度不变的不可压缩流体模拟方法。通过设计预测校正迭代法,可直接求解压强与密度平方的比值,并对边界位置处的流体粒子进行密度修正,并采用松弛法和优化初值选取加速收敛。在满足稳定性的条件下,不需要频繁的执行费时的邻域粒子搜索,本文的方法获得了比PCISPH方法更佳的性能,增大了时间步长,提高了执行效率。仅执行密度不变条件不能满足质量守恒条件,还需要满足速度场的无散性质,因而进一步提出了基于速度无散的不可压缩流体模拟方法。联合了密度不变和速度无散两个压强解算器,并将其融入流体模拟方法,并采用松弛法对算法进行了加速收敛,与PBF方法相比,本文的方法可以保持速度场的无散性质,提高了计算精度,能在较大的时间步长下保证系统的稳定性。通过典型实验的模拟结果、收敛性分析和性能测试,验证了本文提出的不可压缩流模拟算法的有效性和稳定性。泡沫和浪花是航海场景中海浪动态翻卷最典型的视觉特征,本文提出了统一粒子模型的泡沫和浪花的建模方法,泡沫和浪花粒子统称为扩散粒子,根据流体粒子的几何特征、动能和相对速度等判断生成扩散粒子的可能性,并实现泡沫与浪花的平流和消散的模拟。针对流体的表面提取存在凹凸不平的问题,优化了屏幕空间的渲染方法。实验表明本文的方法增加了类表面张力、泡沫和浪花等细节尺度的效果,实现了小尺度航海场景的模拟。