论文部分内容阅读
小规模流固实时交互模拟一直是计算机图形学领域的热门研究方向,模拟出具有真实感、符合自然现象的流固交互效果是广大图形学研究者的目标。目前,传统的流体模拟更侧重于流体真实感的模拟,而忽视了流体渲染效率低、不实时的问题;此外,目前流固交互模拟的研究工作也比较少。为了解决上述问题,本文将在流固实时交互和流体实时渲染方面进行探索研究,主要工作内容如下。首先,为了更好地模拟小规模场景中不同状态流体的表面细节和运动细节,以及更好地控制流体运动状态,采用基于拉格朗日框架的光滑粒子流体动力学(SPH)方法进行流体建模,分析流体动力学的原理、光滑核函数以及流体模拟过程中流体粒子的受力情况,并指出流体模拟过程中需要注意的问题,为后续流固实时交互模拟奠定了基础。其次,针对气态流体运动变化多端、表面细节复杂多样的特点,引入柏林噪声函数用以生成随机数,控制烟雾在运动时的粒子速度和粒子生命周期,使速度和生命周期在一定的范围内随机变化,而不是一个固定值,从而模拟气体运动表面不规则、运动随机性以及随机消散的运动特点,使气体运动更具层次感。再次,为了进一步提高流固交互模拟效率,本文提出了一种固定边界反作用力模型,使用三角网格进行固体障碍物的建模,在固体边界施加一层反作用力,当检测到流体粒子进入这个反作用力的影响范围时,对其产生反作用以阻止流体粒子继续运动,从而有效防止了流体穿透固体的可能性。固体边界反作用力模型不需要在固体边界进行粒子采样,简化了流固交互模拟的复杂度,提高模拟效率。此外,为了使流体粒子与固体边界发生碰撞后不发生完全弹性碰撞,引入恢复系数来修正碰撞后的粒子速度和动能,使交互后的流体运动更真实自然。最后,借助Unity3d引擎搭建实验场景,设计和实现小规模场景流固实时交互模拟。为了提高模拟的真实感和实时性,针对不同状态的流体采用不同的渲染方法。利用基于屏幕空间的方法渲染液态流体,提出扩展粒子系统的方法对气体流体进行渲染,同时使用Unity着色器语言完成流体实时渲染工作。