论文部分内容阅读
近年来,基于物理的流体动画成为计算机图形学的研究热点,如对日常生活中暴雨拍打海面溅起水花的场景、烟雾在海上缓缓升起的现象等的模拟;而在电影特效制作、军事演习及计算机游戏等的模拟方面也得到了广泛的应用,这些需求推动着流体动画不断发展。但是由于物理计算较为复杂,在模拟时往往会损失一些小尺度的细节,满足不了人们对真实感的需求。为了更真实的再现流体动画的模拟效果,增强人们的沉浸感,本文的研究主要集中在以下几个方面:1.模拟方法:基于物理的流体模拟方法主要有三种,本文简要介绍了欧拉法、拉格朗日法以及玻尔兹曼法(LBM)。三种方法各有优缺点,可以将它们混合使用。如在对N-S方程求解过程中采用的半拉格朗日方法就是将拉格朗日方法和欧拉方法相结合,该方法先将粒子映射到网格上进行压强项及外力项的求解,然后将网格上的物理量如压强、速度等的变化量采用线性插值法映射回粒子求解对流项,在进行对流项的求解时采用龙格库塔法,提高了计算的精度。2.本文在对两相流(气体和液体)进行模拟时,采用了Particle Level Set方法对两相流的界面进行追踪。Level Set方法通过引入距离函数来确定界面,但往往会造成体积的损失进而影响细节的表现。而Particle Level Set是基于Level Set方法,在界面的一个窄带部分分布若干粒子来校正距离函数,降低了数值耗散从而能够保持自由表面处原有的尖锐特征。在每一个时间步长会对距离函数进行重构,而界面会根据距离函数的变化来不断调整位置,既能减少细节的损失又能降低计算的复杂度,从而加快了模拟的速度。3.本文引入MultiFLIP[6]算法来进行大规模流体的模拟,在考虑液体的同时将周围的气体也视为不可压缩的流体,并考虑了两种流体之间的相互作用。在网格上对压强项、外力项进行求解,再将网格上的参数如速度、压强等的变化传递给粒子,用完全拉格朗日粒子对对流项进行求解,几乎完全消除了数值耗散。MutliFLIP算法能够保存更加丰富的小尺度细节,提高了模拟的逼真程度。