论文摘要
流体的模拟是计算机图形学领域研究的重点,烟雾作为流体的重要组成部分,其模拟受到愈来愈多的关注。烟雾运动的模拟一般有两种方法,基于粒子系统的烟雾模拟与基于物理模型的烟雾模拟。基于粒子系统的模拟只有在一定的条件下才能满足模拟的实时性要求。基于物理的烟雾模拟主要思想是以反映烟雾的运动规律的方程为基础,建设烟雾的运动模型,通过选用合适的数值方法求解其模型方程,解方程可以得到运动过程中各个时刻的运动状态,结合图形绘制工具就可以得出模拟的效果。其所得的效果更加符合烟雾的真实运动。采用基于物理模型的方法,对烟雾进行模拟,其主要过程可以分为三步:首先是确定所使用的烟雾物理模型。本文使用不可压缩Navier-Stokes方程作为其基本的物理模型,且添加了烟雾运动中密度随速度场变化的方程。文中假设不可压缩方程中粘度项的粘度系数为零,简化方程的数值计算。为减少数值耗散,引入了漩涡算子补充由于数值耗散而损失的能量,将这一漩涡约束力作为方程中外力方程中的一个分量。然后是对所选物理模型的数值求解,本文用有限差分法求解偏微分方程,使用同位网格对方程的解域离散,分步对烟雾的物理模型方程进行数值计算。求解投影项与扩散项时,采用了高斯—赛德尔迭代方法,该方法保证较大时间步长的稳定;在对方程的对流项求解时,介绍了两种方法:首先选用了无条件稳定的半拉格朗日方法求解对流项,半拉格朗日方法是稳定且易求解的存在大量数值耗散;然后重点介绍了利用一种改进的CIP方法对对流项进行高阶求解。原始CIP方法是不稳定的,这种改进的CIP方法则是无条件稳定的且方程具有三阶精度。本文烟雾的运动是在一个封闭的环境中进行的。最后是对烟雾运动的图形绘制。使用开放性图形接口OpenGL来绘制烟雾的运动。本文为减少数值耗散引进了漩涡约束力,根据所得的物理模型方程,绘制了使用半拉格朗日方法求解对流项的方案的图形与使用改进的CIP方法求解对流项方案的图形。