论文部分内容阅读
计算机的流体模拟已在计算机图形领域受到广泛的重视。基于光滑粒子动力学(SPH,Smoothed Particle Hydrodynamics)的实时可交互流体模拟的研究在动画游戏、虚拟现实等诸多领域得到了广泛应用。本文主要结合CUDA编程(ComputationalUniformed Device Architecture,计算统一设备架构),对基于光滑粒子动力学的实时可交互流体模拟进行研究。文中提出了一种在光滑粒子动力学的模拟方法下,流体粒子与环境中的刚体交互的方法,并结合隐式曲面绘制方法和Gpu加速,实现了可与环境中的刚体交互,并且由用户参与的可交互实时流体模拟。 给出了光滑粒子动力学SPH的CUDA实现。光滑粒子动力学SPH的流体模拟方法在运动计算上涉及两个主要步骤: 1)将流体空间域划分为一致网格,将流体粒子按质心所在的网格做排序; 2)通过步骤一中的排序结果,每个粒子快速定位相邻粒子,按SPH方法的计算法则进行受力计算。这两个步骤都具备可并行化的特点,并且步骤二涉及大量的数值计算,使用CUDA的GPU并行计算模型极大地提高了SPH的模拟效率。 提出了SPH的流体粒子与刚体的交互方法。在计算机动画、游戏领域中,流体是环境中的重要组成部分,环境中的其他物体会和流体交互,对流体产生作用与反作用。本文针对环境中的刚体进行研究,将环境中的刚体分为静态刚体和动态刚体两种类型,分别按不同的计算方法和流体粒子交互。通过文中的方法,流体与刚体的交互效果逼真,流体和刚体的反应符合现实中的运动规律。 基于SPH的计算结果,对所模拟的流体进行了隐式曲面绘制。利用每个时间步长内最终计算的粒子位置,计算流体空间域中每个网格的密度,利用Marching Cubes方法,绘制了等值面以表达所模拟的流体表面。再通过结合CGSL和光线折射计算公式,实现了流体的光线折射效果。本方法能够较为逼真地反映流体的表面细节,所绘制的流体可以表现波浪、水滴融合等现象,具有良好的视觉效果。