论文部分内容阅读
自然界的流体现象十分丰富。流体是由大量的、不断地作热运动而且没有固定平衡位置的分子构成的,基本特征是没有固定的形状,具有流动性。流体的模拟是计算机图形学的一个重点和难点。
计算机图形学中对流体模拟的研究,早期主要是通过构造的方法,只能模拟一些简单的流体现象。近些年来随着技术的发展,图形处理硬件性能的提高,基于物理的流体仿真算法逐渐成为了该领域的热点。基于物理的流体仿真算法能够体现流体的物理特点,从而可以用计算机生成更为逼真多样的流体现象。由于流体的丰富特性,目前还没有一种算法能够通用于各种流体现象。
海浪是一种复杂的流体现象,它是一种大规模的水体,既有相对呈周期性的水波,也有形态剧烈变化、会卷曲、分裂的碎浪,还有飞溅的水花和漩涡。如何对海浪这种规模大、现象丰富的自然景象进行建模是一个难点。
研究如何对海浪进行快速物理模拟可以推广到其它大规模水体的模拟中,能在影视制作、动画设计、计算机游戏、计算机艺术、计算机辅助几何设计/制造、科学计算可视化、地理信息系统、虚拟现实等领域做出贡献。
本文以计算机图形学的视角,试图对海浪这类大面积水体进行快速高效的建模和绘制。首先细致地分析了海浪的特点,并对现有的流体模拟算法进行了深入的研究和分析探讨。在此基础上,充分结合海浪的特点,提出了一种二维网格法和三维粒子法相结合的方法。该方法符合大面积水体的物理规律,能够用于快速真实地再现海浪场景。
对相对具有周期性、形状变化平缓的大面积区域采用二维网格法进行模拟,使用由纳维—斯托克斯方程简化而成的浅水波方程作为控制方程,用一个二维交错网格进行空间离散,运用半拉格朗日法求解,得到海面各点的高度,从而可以简单直接的构造出大面积的海面。利用GPU进行求解计算,充分发挥了GPU的浮点运算和并行计算能力,减轻了CPU的负担,平衡了负载,加快了模拟的过程。
而对由风力等引起的卷曲的海浪、与礁石相撞导致的破碎浪花等区域则采用三维粒子法进行模拟。使用了基于无网格的光滑粒子流体动力学的方法对三维不可压纳维—斯托克斯方程进行求解,克服了大变形的困难,而且遵循了物理规律,可以真实的体现碎浪形状。
二维网格法和三维粒子法必须进行耦合。由二维浅水波方程还原出三维的速度信息,传递给碎浪子系统,映射到边界附近的粒子上。三维粒子法子系统运算之后,对边界速度场进行积分平均,再映射到网格相应区域。
实现了该方法,并对其进行仿真实验。仿真结果表明,该方法模拟的海浪具有物理真实感,能达到实时性的速度。这种方法可以为大规模水体的绘制提供一条有效的解决思路。