论文部分内容阅读
流体,如水、烟、火,是生活中最常见的自然现象之一,对于流体现象的仿真模拟在影视特效、游戏、灾害预防等应用中具有极为重要的意义。因此,近二十年来,流体模拟一直是计算机图形学动画领域的一个热点问题。随着计算机能力的提升和研究的深入,模拟更为复杂、精细、逼真的流体现象逐渐成为新的热点。由于流体现象背后的物理错综复杂、流体运动变幻莫测,利用计算机模拟真实感较强的流体效果依然是一项极富挑战性的工作。 流体模拟通常包括流体运动方程的求解和流体界面的追踪。流体界面的追踪主要用于描述流体的位置变化从而为物理运动方程确定求解的区域。一个精确而高效的流体界面追踪器是流体模拟成功的关键步骤之一。水平集方法(Level Set Method)是图形学领域流体模拟最流行的界面追踪方法。然而水平集方法受限于自身的精度问题,引入的数值耗散常常导致流体表面细节和体积的丢失。此外,水平集方法对于多相界面的追踪也存在一定的困难。本文针对水平集方法存在的精度低、效率不高、难以处理多相流体界面等问题进行了深入研究。主要内容和贡献归纳如下: (1)流体界面追踪中,我们需要根据流体速度场对界面进行对流求解。传统对流求解方法由于精度低带来的数值耗散会造成流体表面细节的大量丢失。对此,我们提出了一个动态特征映射的对流求解方法。对流的求解可以转化为映射方程的求解,从而将对流问题转化为映射方程的对流求解问题。我们首先使用高阶精度的BFECC(Back and Forth Error Compensation andCorrection)方法求解映射方程的对流,然后提出一个质量评价准则动态地对映射方程进行重新初始化以保证其精度。实验结果表明,该方法可以有效提高对流求解的精度,应用到流体界面追踪中可以捕捉到非常丰富的流体表面细节。此外,我们提出的质量评价准则还可以用于调整流体表面细节的层次(Level of Details),为流体模拟提供有效的工具。 (2)传统水平集方法在处理多相界面时,需要对每一个相赋予一个独立的水平集并分别求解,不仅内存、计算开销大,且相邻水平集之间由于误差问题容易出现不一致,导致重叠、空洞等现象。此外,多相界面的提取与可视化也存在比较大的难度。为了克服以上问题,我们综合现有关于界面追踪、界面重建和网格平滑的技术提出了一个新的框架用于多相界面的追踪。该框架只需使用一个无符号距离场和一个标识场对多相界面进行表示,从而大大减少了内存开销。在每个时间步,我们显式构造和保存多相界面网格,该网格可以直接用于距离场和标识场的更新计算,因此比简单的插值计算更为准确。多相界面网格通过预计算模板直接片面化操作构造得到并进行了保体积保特征的平滑处理以提高质量。该方法简单、有效,能应用于多种多相流模拟的界面追踪。 (3)多相界面追踪的另外一个问题是表面细节和流体体积的丢失,对此,我们提出了一个基于空间自适应技术的多相界面追踪方法。该方法继承(2)中方法的思想,采用统一的无符号距离场和标识场对多相界面进行表示,并通过对距离场和标识场的特征观察建立了空间剖分的两个准则。通过这两个准则建立的空间数据结构可以有效提高界面附近的分辨率而不降低效率。此外,该空间数据结构可以直接用于距离场和标识场的准确计算以及多相界面网格的构建。相对已有方法,该方法在内存开销、效率、效果方面都有较大提升,不但可以很容易地处理多相界面的拓扑变化还能有效保持多相界面的表面细节和流体体积。