论文部分内容阅读
随着人们生活水平的不断提高,对于电视、电影、三维游戏中的特效真实感的需求也不断增强,水的模拟在其中应用非常广泛,因此图形学中流体模拟领域一直都是研究的热点。但与此同时,水面波浪的产生受到各方面因素的影响,使得水面重建需要考虑到的因素非常多样和复杂。多年来,对于流体重建的研究也在不断的发展,从最早的基于经验模型建模,到基于流体物理方程的求解,到如今基于数据驱动方法的兴起,各种方法百花齐放,具有的优势和缺陷也各有不同,因此如何能够呈现出具有真实感的动画是一个非常具有挑战性的问题。 然而现有的基于数据采集的水面重建方法中,依然存在着一些问题。本文针对这些问题,对水面动画重建的方法进行了研究,提出了一种基于反射率的多尺度水面重建方法,主要取得了以下创新性研究成果: (1)提出一种基于反射率的多尺度综合水面高度场重建方法 传统的SFS方法对水面高度场进行重建存在的两个问题,第一,假设物体的表面为朗伯体并不符合真实规律,第二,仅通过阴影难以恢复大尺度下的水面形态变化,可能造成大尺度下水面高度场的变化趋势的不准确。因此,本文提出了一种基于反射率的多尺度水面重建方法。首先利用拍摄的视频信息,对反射率进行重建,并结合反射率信息重建大尺度下水面全局的波浪趋势信息。然后针对复杂的水面波浪部分,利用局部优化算法在小尺度下对高度场进行再次的优化,获得更加准确的波浪形态。然后综合两种尺度下获得的高度场信息,完成水面高度场的重建。从实验结果可以看出,我们提出的方法能够更加准确重建出水面的高度场信息,能够很好的反应出水面波浪的状态,得到具有真实感的水面形态数据。 (2)提出一种在时序上对水面动画进行平滑并再现波浪翻滚的方法 在前文对于高度场的求解的算法中,主要针对于单帧进行计算,因此在帧与帧之间可能出现高度场的跳变,造成重建波浪动画有不够连贯的感觉。本文通过浅水方程对水面进行拟合,得到水面整体的速度信息,然后利用方程的约束对动画进行平滑,得到更加生动的波浪动画。 针对水面高度场数据无法再现波浪翻滚现象的问题,本文提出了一种高效的波浪翻滚重建算法。首先将高度场转化为三角网格来表示,然后利用分水岭算法定位波峰位置后,结合水面速度和高度梯度信息重现波浪翻滚效果,得到更具真实感的水面动画。实验表明,本文提出的方法能够更好的展现波浪表面的细节,得到波浪翻滚的效果,渲染得到更加生动的水面动画。 (3)搭建了一个水面动画重建原型系统 综合本文设计的基于反射率的多尺度水面重建框架,搭建了水面动画重建原型系统。该系统以单摄像头拍摄的水面视频作为输入数据,实现了视频数据的读取和逐帧分解为图片,并可根据实际的输入视频数据,设定相关的参数,利用设计好的基于反射率的多尺度重建算法进行水面高度场的重建以及三维模型文件的生成。并可根据设定好的批处理程序,在maya中进行最后的渲染,得到具有真实感的水面动画。该系统只需要设定少量的参数就可以根据输入的视频数据方便的生成重建动画,同时由于是原型系统,具有较强的扩展空间,可以为以后的水面动画重建研究提供基础的平台。