论文部分内容阅读
在计算机动画领域中,20世纪80年代起就开始了对流体运动的模拟研究,但是目前流体运动动画模拟仍然是重要的并且具有挑战性的研究方向之一。近年来,自然景物的模拟一直是计算机图形学中最具挑战性的问题之一。关于山、水、云、烟、火焰等自然景物的模拟,在计算机游戏、影视、广告等各种领域中有着广泛的用途。作为自然景物模拟的重要内容,对烟雾、水波、火焰等现象的模拟正日益引起人们的关注。真实感和实时性是计算机图形学追求的两个目标。以基于物理模型的计算机流体动画作为研究目标,包括基于物理模型的烟雾动画、基于物理模型的水波动画和基于物理模型的火焰动画,并试图在相同的硬件软件条件下,在模拟的真实感和速度之间达到一个平衡。改进了烟雾运动模拟所用的物理模型,由此改进的物理模型,进而提出了一种基于物理模型的烟雾动画制作方法。对烟雾动画的物理模型的改进包括两个方面:简化了速度场方程组和添加了浓度场方程。综合这两者来表示对烟雾运动物理模型的改进。一方面,简化了烟雾动画的速度场方程组。前人在制作烟雾动画时,一般采用完整的Navier-Stokes方程组,但流体的粘性效果在气体动画特别是粗网格和低速运动情况下可以忽略,故本文采用的物理模型是非粘性不可压欧拉方程。与完整的Navier-Stokes方程相比,非粘性不可压欧拉方程忽略了扩散项,因而可以简化数值模拟计算。另一方面,添加了浓度场方程。我们在Navier-Stokes方程组表示速度场的基础上,如果要真实的再现烟雾模拟结果,光有速度场还不够,还需要计算机图形学中的真实感绘制算法。这里,我们没有采用计算机图形学中的真实感绘制算法,而是用浓度场方程来绘制烟雾模拟结果。提出了一种改进的基于物理模型的水波动画算法。用二维浅水波方程来表示水波运动的物理模型,在此基础上提出了一种求解此物理模型的数值算法。和以往的方法不同的是,本文既没有去特意构造具体的波形函数,也没有去求解复杂的Navier-Stokes方程组,而是基于二维浅水波方程模型,采用隐式半拉格朗日积分方法进行求解,在保证稳定性的同时,可以允许大时间步长。二维浅水波方程保证了真实感,而此数值算法保证了效率。提出了一种改进的基于物理模型的火焰动画算法。我们制作火焰动画选用的物理模型是完整的Navier-Stokes方程组,针对完整的Navier-Stokes方程组,我们提出了一种数值求解算法,将其分解成外力、对流、扩散和投影分别计算,每一步都稳定,所以整个求解过程也稳定,这样,就可以用大时间步长来计算。Navier-Stokes方程组保证了真实感,而此求解算法保证了效率。这同样也是为了在真实感和效率之间寻求一个良好的平衡点。