论文部分内容阅读
计算机图形学中的流体场景模拟,无论在传统的影视特效、广告、三维游戏开发等领域,还是在逐渐兴起的虚拟现实、增强现实等领域,都有着广泛的应用和研究价值。然而,由于流体形态的复杂和运动的不规则,流体的真实感模拟和渲染是一个具有挑战性的问题。从最初的基于经验的波面造型方法,到主流的物理模拟方法,以及现在新兴的数据驱动方法,流体动画合成方法虽然在不断发展和创新,但依然无法在真实感和实时性上达到平衡。 作为数据驱动方法中的一种,基于实测数据的流体重建方法从真实流体场景中采集数据,重建出的流体模型符合流体真实的运动规律,同时回避了物理方程计算量大的问题,提高了流体重建的整体效率。本文借鉴深度摄像头在刚体三维重建中广泛的运用,针对基于实测数据的流体重建方法中存在的问题,提出一种新的基于深度摄像头的流体动画合成方法。该方法包含三维重建和数据复用两部分内容,主要取得以下研究成果: (1)提出一种基于RGB-D数据的流体表面重建方法 目前基于实测数据的流体重建方法分成两种情况:一是使用多台高精度捕捉设备和搭建复杂的捕捉环境,重建出的流体动画具有丰富细节和高度真实感,但复杂的操作和较高的成本使这类方法难以得到广泛的运用;二是基于普通单目摄像头采集流体RGB图像,重建出的流体动画虽具有良好的视觉效果,但由于其视角单一,三维信息还原的过程设置了较多假设条件,因此重建结果与真实场景具有较大差异。 针对该问题,本文通过使用RealSense摄像头采集流体RGB-D数据,快速重建流体表面模型。由于设备采集深度信息时存在噪声、空洞等问题,同时无法捕捉流体表面微小的细节变化,直接由深度数据转化而成的流体表面高度场也相应地存在该问题。为了尽可能真实还原流体表面及其细节信息,本文基于SFS角度分析RGB图像,建立像素明暗变化和流体表面梯度之间的联系,首先将RGB图像作为引导图像,使用引导滤波方法对原始高度场进行去噪;然后根据RGB图像中的局部梯度信息,使用泊松融合的方法填补高度场空洞区域;最后对比高度场和RGB图像中的梯度信息,在高度场较平滑区域融合RGB梯度信息,从而增强流体表面的细节变化。该方法与传统的SFS方法相比,能通过多源信息的融合使重建的流体具有较好的真实性和表面细节,同时简单的采集操作、较低的设备成本使其更具有实用性。 (2)提出一种混合数据和粒子的流固交互实时模拟方法 基于实测数据的流体重建方法由于采集数据的有限,最终重建的流体动画也较为有限。然而我们可以利用有限的流体高度场数据,生成更加多样化的流体动画类型和效果。作为生活中十分普遍的流体运动场景,流固交互是流体动画合成研究中的重要方向之一。目前主流的流固交互模拟方法是基于物理方程,其中涉及大量的计算,从而无法达到很好的实时效果。 针对该问题,本文提出一种混合数据和粒子的流固交互实时模拟方法,该方法将静止物体或受控制的运动物体导入重建得到的流体动画中,在流体动画原有的高度场数据基础之上做出每一帧的改变,从而生成流固交互情况下新的高度场数据。高度场每一帧的变化情况是物体与流体相互作用造成的结果,表现为波浪的产生和传播。由于粒子可以叠加生成流体表面的波动情况,本文基于粒子方法,结合现实中的流固交互场景分析波浪的产生和传播过程,以及对应的粒子行为和具体属性。粒子生成的原因分成两种:物体挤压流体和流动流体撞击物体;粒子产生之后开始传播,其速度受流体粘滞力和物体撞击的双重影响。具体的实现是通过搭建完整的粒子系统,在流固交互过程中跟踪粒子的生成、运动、消失等过程和控制粒子的具体属性,在每一时刻生成粒子分布图像,经图像滤波后转化成高度场的变化情况,从而与该时刻的原有高度场叠加,最终合成新的流体动画效果。实验结果表明该方法能够有效地生成流固交互的动画,并具有较好的实时效果。 (3)搭建了基于RealSense摄像头的流体动画合成原型系统 为了进一步满足流体动画的应用需求,本文结合用户的使用习惯,搭建完整的流体动画合成原型系统。该系统集成了基于RealSense摄像头合成流体动画的三个工作流程:基于RealSense摄像头采集流体RGB-D数据、基于RGB-D数据重建流体表面、融合数据和粒子生成流固交互效果。三个流程被设计成三个相互依赖又彼此独立的模块。模块的相互依赖关系使用户能够通过连贯的操作,使用RealSense摄像头合成最终的流体动画效果。而模块的彼此独立性使用户能够自由地选择使用其中任一功能,从而增强该系统的应用范围。