论文部分内容阅读
流体(液体和气体)现象充斥于我们的日常生活当中,我们不可能脱离我们周围的大气环境和水环境,它们是人们生活中极为重要的组成部分。因此流体现象的真实感模拟对于虚拟现实、影视特效以及电子游戏等,具有极为重要的意义,而流体动画一直以来都是计算机图形学领域中的热点问题。随着计算机硬件性能的提升,人们对于流体动画的真实感要求越来越高,于是基于物理的流体模拟技术逐渐成为目前流体动画的主流技术。
在某一确定时刻,流体的外在特征(如形状、颜色和速度等可被人的视觉系统所感知的特征)完全由流体本身同它周围环境(如盛水的容器)之间所发生的相互作用来决定。我们称流体与周围环境之间的相互作用称为双方之间的交互(interaction)。不同的交互,决定了不同的流体运动,因此,基于物理的流体动画,就是对不同的交互进行真实感模拟。
尽管人们对烟雾、火焰和水等常见的流体交互现象,已经进行了非常逼真的模拟,但现实世界中的流体现象千变万化,依然有许多重要的流体交互现象等待着我们去模拟,从而进一步完善我们对现实世界的计算机再现。另一方面,基于物理的方法大都求解费时,难以运用到对模拟速度要求较高的领域,如电子游戏、虚拟现实等,因此在满足视觉要求的前提下,研究高效的交互模拟技术,就显得尤为重要。本文以基于物理的计算机流体动画作为研究目标,采用高效物理模型和高效求解手段,对目前甚少涉足的重要流体交互现象进行研究,从而满足众多应用领域的需求。
针对这一课题,本文着重研究以下三个方面:第一,液体与周围环境的交互研究,着重于水和所流过表面的交互;第二,液体与液体之间的交互,即液体混合物的模拟;第三,作为本文补充,我们对现有骨架提取算法提出一种改进算法,来矫正存在的缺陷。
本文算法的主要贡献和创新点在于如下工作:
√首次将二元LatticeBoltzmann(LB)模型引入到计算机图形学领域,来模拟液体混合物的流体动画。液体之间的扩散现象和分离现象被分开考虑,因此可以统一处理互溶的和不互溶的液体混合物,并且各液体成分的粘性,以及成分之间的扩散性,可以分开调节而不互相影响。另外,我充分发挥LB模型的并行性,在图形显卡上对该模型进行加速,使得对于中等规模的场景,能够进行实时模拟。
√受到声速限制,二元LB模型只能稳定求解低速流(层流,低雷诺数Re<100)的情形,如果速度升高,流场中的湍流特征增加(而这是现实世界中经常存在的),该方法就不能实现稳定求解。因此,我们将Sub-grid模型扩展到二元LB模型当中,大大地改善了该方法的稳定性,使之能够对于更大雷诺数的流场进行稳定求解。
√混合物的自由表面,实际上是三种流体(两种液体成分和空气)之间的交互,伴随自由表面运动的流场雷诺数常常要大大超过100。采用上述改进模型,就可以对液体混合物的自由表面进行模拟,我们实现了蜂蜜滴入水中的模拟。并且,常用的流体控制策略,也可以引入到液体混合物的模拟中来,我们实现了蜂蜜可以在水中呈现出马的形状。另外,由于LB模型需要耗费大量内存,我们充分利用了Cache技术来优化内存调度,还利用多线程技术,使得我们的算法能够充分利用目前流行的多核CPU系统。通过这些技术,我们可以对较大场景实现实时计算。
√首次在计算机图形学领域将表面流体的运动和表面形态的湿度变化结合起来,以模拟流体流经不同介质表层所产生的复杂真实效果.对于潮湿的表面采用物体表面对水的实际吸收量作为控制因子来表现其不同程度的湿润情形.同时模拟了整个表层污物的输运以及侵蚀和沉积过程.
√对于一些复杂3D模型,大多数骨架抽取算法所产生的骨架都存在偏离中心和冗余分支的缺陷,这些缺陷使得骨架在被应用之前,需要一定的手工调整,甚至根本不可用而需要重新生成。针对这种情况,本文提出了一种矫正算法,去除这些缺陷,使得结果骨架能够被直接应用到角色动画等当中。该算法思想可以应用于所有骨架提取算法,且效率很高,其计算量只占整个算法的2%左右。