论文部分内容阅读
基于物理的计算机流体动画模拟是目前计算机图形学领域内的重要研究方向之一,在影视特效制作、游戏模拟、灾难仿真等应用场景中,计算机流体动画模拟都有着极其重要的应用价值。随着人们对电影、游戏等视觉效果要求的提高,以及工业与科学应用需求的不断深化与增长,各种传统的计算机流体动画模拟方法均面临着前所未有的挑战。因此,如何更为有效地、快速地、逼真地实现大规模、高精度、高质量的烟雾、水流等自然流体现象的模拟计算,便成了计算机图形学中最为热门的研究方向之一。在传统的基于欧拉网格法的流体动画模拟框架中,投影步求解过程往往是计算资源和计算时间消耗占比最大的一个部分,特别是对于高精度、高分辨率的大规模流体应用场景,传统的计算机流体动画模拟算法不论是在计算速度上,还是在模拟效果上,均存在明显不足。例如,大多数流体模拟模型缺乏有效的投影步计算加速方案,无法兼顾计算精度与计算效率,且存在着算法应用高时耗、编程实现复杂、计算内存消耗巨大等缺点。特别地,目前大多数流体模拟加速算法对流体模拟的核心问题——泊松方程的数值求解存在着诸多问题。在欧拉网格法的流体动画模拟框架中,投影步的泊松方程离散一般会产生大型稀疏线性方程组,对于大部分数值计算方法,例如预处理共轭梯度法(PCG),则需要通过多次迭代求解才能得到稳定的收敛解,这也使得整个流体模拟计算过程无法形成快速、高效的计算模式。另外,由于数值计算算法的数值粘性和计算误差在不同分辨率的流体场景中存在着不同的表现,使得高-低分辨率情况下,模拟结果在物理形态上产生了巨大差异,严重地降低了流体模拟算法的用户交互能力,同时也在很大程度上提高了用户的时间消耗与预览成本。同时,目前很多基于深度学习的模拟算法,受到了流体变量在离散空间内的数据高维性所带来的巨大限制,无法更为有效地进行模拟加速和流体本质特征的研究,从而进一步影响了该类模拟与加速算法的实际应用与推广。基于以上问题与挑战,本文同时考虑了计算机流体动画模拟在计算精度、仿真效率上的需求,将模拟算法的高实时性、高可交互性、高物理准确性等作为研究重点与目标,针对包括烟雾、液体等自然现象的模拟关键性问题,提出了基于深度神经网络框架的求解算法与加速方案。随着人工智能技术的深入发展,深度神经网络模型以其强大的数据学习能力,被广泛应用至计算机图像分类、语音识别、流体细节合成等研究领域。其稳定的、高效的计算模式,为计算机流体动画模拟提供了一种新的问题解决途径。因此,本文以深度神经网络为基本算法框架,对基于物理的流体动画模拟与加速进行了以下几个方面的研究:·提出了基于深度神经网络(DNN)的流体投影步加速算法。针对传统的基于欧拉网格法流体模拟框架中,投影步计算过程高耗时、高耗资源的问题,本文提出了一种基于深度神经网络模型的加速解算方法,以深度学习计算模型替代传统的流体模拟投影步求解器,提升了整个投影步计算效率。同时,本文提出了相应的基于网格块(Patch-based)所构建出的输入输出特征向量,降低了流体模拟变量数据本身的高维性与复杂性对深度学习网络模型训练与预测效率的影响。我们还在训练模型的损失函数中融入了流体速度场的散度信息,有效地控制了流体预测结果的不可压缩性性质。通过与传统的投影步迭代求解方法相比较,该深度神经网络算法可以将整个投影步计算过程提速17倍以上。同时,针对基于深度神经网络的流体投影步加速计算模型的算法普适性与鲁棒性问题,本文进一步提出了基于深度增量学习方法的自适应流体投影步加速方法。本文提出了以求解“快速模式”和“普通模式”为基础的投影步自适应计算框架,将经典的预处理共轭梯度法(PCG)与基于深度神经网络投影步求解模型相结合。该框架以深度增量学习方法为核心,通过对预测场景的自学习来快速更新“快速模式”中的深度神经网络模型,最终可以满足复杂的、远离训练数据的流体场景快速模拟需求。·提出了一种新的基于深度卷积神经网络(CNN)的泊松(Poisson)方程快速求解算法。本文首先通过对流体泊松方程离散化求解过程中所产生的大型稀疏线性方程组进行分析,提出了基于全局的、具有严格多层几何结构的网格单元划分与处理方法,并以此为基础,对泊松方程的矩阵-向量特征信息进行提取,构建了相应的深度学习模型的特征输入矩阵与输出向量。同时,我们还建立了多样性训练数据生成系统,结合人工训练场景生成和随机训练场景生成,解决了深度学习模型的训练样本生成问题,为深度学习模型提供了丰富的多样性训练数据。该算法以解决投影步所产生的泊松方程求解的本质性问题——大型稀疏线性方程组Ap=d的求解问题为出发点,通过对烟雾、液体等复杂流体场景的模拟实验与测试,并与包括ICPCG、MIC(0)-PCG、MG-PCG等多种经典求解方法作对比,证明了其在流体大型线性方程组的快速求解中所具有的巨大优势。该方法还考虑了深度神经网络模型预测结果的不可压缩性性质、液体模拟中的自由边界等特殊问题,提出了相应的模型损失函数、特殊自由边界网络等模块,对该泊松方程快速求解算法效果进行了进一步提升。·提出了一种新的基于深度卷积神经网络(CNN)的低分辨率流体形态矫正算法。我们首先从欧拉网格法流体模拟在不同分辨率下所产生的流体结果形态偏差问题入手,设计了新的深度神经网络模型对低分辨率流体模拟结果进行速度和密度量的矫正,有效地减少了高-低分辨率模拟结果之间的物理形态差异。传统的形态矫正算法,如流体引导方法等,主要以高分辨率模拟结果为出发点,实现以低分辨率模拟结果为参考的数据矫正目标,而本文从另一个方面入手,以高分辨率模拟结果降采样数据为参考,以深度卷积神经网络模型为建模依据,通过学习相同场景下低分辨率与高分辨率速度场、密度场数据之间的差异,对低分辨率模拟结果的物理形态加以修正处理,使得低分辨率模拟结果与相应高分辨率结果相一致,实现了在低分辨率情况下可以快速预览高分辨率模拟结果的目标。在该算法的具体实现过程中,我们提出了基于网络层(Grid-layer)的特征向量构建方法,设计了相应的训练数据生成系统,同时还构建了基于预测密度差、速度差以及预测散度控制项的特殊损失函数。最后,通过耦合细节增强技术,我们在很大程度上提升了基于低分辨率模拟的细节合成结果的物理视觉效果,加速了高精度流体动画生成过程。·提出了一种新的基于相空间(Phase Space)的流体系统分析方法。目前,大多数流体模拟算法均无法避免流体变量在欧式空间中存在数据高维性所带来的计算困难,从而无法更为有效地分析流体等非线性运动现象的本质与特征。本文尝试站在一个全新的空间角度,将流体等非线性物理系统变量映射到具有低维流形特性的相空间中,并将相关问题转化为典型的几何问题来处理。同时,我们还结合了几何空间中的经典深度学习算法,如Point Net深度神经网络框架,基于流体相空间几何低维流形,进行了一系列拓展性应用探究。其中,我们对单摆、双摆、流体系统在相应相空间中的几何流形特性进行了分析,给出了不同基底所构成的不同相空间的性质。对于单摆、双摆系统,我们完成了例如分类与识别的拓展应用,对于流体系统,我们引入了应变张量(Strain Tensor)和旋转张量(Rotate Tensor)作为基底进行相空间构建,并进一步完成了基于此空间中的流体识别问题。