基于多精度融合的流体动画生成方法技术

技术编号:12773440 阅读:38 留言:0更新日期:2016-01-27 17:10
本发明专利技术公开了基于多精度融合的流体动画生成方法,包括以下步骤:从流体计算及流体表面构建两个方面自底向上建立多精度流体动画的生成模型。首先,在底层利用自适应SPH模型计算流体方程并获取多精度粒子集。其次,提取表面粒子集并对其进行预处理。然后,在上层建立多精度表面模型。最后,通过建立多精度网格、计算无符号概率场、构建带权图并利用图切算法获得具有不同精度的流体表面,然后将其融合在一起形成最终的流体表面。最后通过使用真实感渲染方法获取对应的流体动画效果。该方法能够在保持流体动画真实感的前提下,可实现对流体动画的快速、高效的生成。

【技术实现步骤摘要】

本专利技术涉及一种基于多精度融合的流体动画生成方法,该方法考虑了流体运动视觉上的多尺度特征,分别从流体计算及流体表面构建两个方面自底向上建立多精度流体动画的生成模型,从而在保持流体动画真实感的前提下,实现对流体动画的快速、高效的生成。
技术介绍
流体运动容易产生丰富的、具有不同精度的细节,例如广阔的水面和细小的水花等,这些细节的模拟和渲染对于流体动画的视觉真实感至关重要。然而,细节的生成需要高精度的计算和渲染,由于需要处理大规模的粒子,因此无论是在流体计算还是在流体表面构建等方面都会产生极大的计算消耗。现有的方法并没有利用流体运动在视觉上所产生的多精度特征,很难在有限计算资源的限制下进行有效的流体计算和表面生成,严重影响了动画的视觉真实感。
技术实现思路
本专利技术的目的就是为了解决上述问题,提供一种基于多精度融合的流体动画生成方法。通过将不同精度的表面融合在一起形成最终的流体表面,结合使用真实感渲染方法即可获取对应的流体动画效果。本专利技术方法能够在生成具有多种细节的、视觉逼真的流体动画的同时有效降低计算量。相关方法可广泛应用于大规模流体动画的生成、动漫制作、影视特效、游戏娱乐等领域中。为了实现上述目的,本专利技术采用如下技术方案:基于多精度融合的流体动画生成方法,包括如下步骤:步骤(1):初始化NS方程的初始条件和边界条件;所述初始条件为流体源S,流体源S由SPH粒子集P表示;所述边界条件B包括固体与液体边界、空气和液体边界;步骤(2):根据初始化的流体源S及其对应的粒子集P,基于NS方程,建立基于SPH的多精度流体计算方法,获得多精度粒子集;步骤(3):对步骤(2)的多精度粒子集进行预处理,将处理后的粒子集使用八叉树存储;步骤(4):从八叉树顶层开始不断重复迭代执行步骤(5)直到八叉树底层;步骤(5):对八叉树的每一层,计算并提取该层对应精度的流体表面网格;步骤(6):将不同精度的流体表面网格融合成一个流体表面,使用真实感渲染获得每帧的流体动画;步骤(7):如果当前帧数小于用户设定的动画帧数,则转步骤(2)继续下一帧流体动画的计算,最终得到体现多尺度细节的流体动画。NS(Navier-Stokes,纳维-斯托克斯)SPH(SmoothParticleHydrodynamics,光滑粒子流体动力学)所述场景模型包括二维或三维场景模型;所述步骤(1)初始化NS方程的初始条件就是设定粒子集P中每个粒子的半径大小、位置和速度;所述步骤(1)初始化边界条件B就是根据输入的流体所在的场景模型和流体源S,设定固体和液体边界;在剩余空间和流体源S之间设定空气和液体边界;所述步骤(1)的步骤如下:步骤(1-1):初始化SPH粒子集P;每个粒子具有以下属性:质量m,半径r,所在层数l,速度u,位置x。初始化时,粒子被随机的分到不同的层中l=0,1,2,…。第0层的粒子质量和半径是最小的,令第0层粒子的质量为m0,半径为r0,那么位于第l层的质量和半径分别为m=2lm0和根据用户输入的初始化速度向量v来初始化粒子的速度u=v,粒子的位置x是在用户给定的流体源的内部随机生成。粒子之间的距离为ri/h,取h=2.5。如果两个粒子i和j满足||xi-xj||≤max(ri,rj),则说明粒子i和j是邻居关系。将粒子用KD树存储,则该邻居关系可以通过距离查询快速获取。用户给定的流体源是指,初始化的水源。例如模拟一个水球落入盆中,则初始化的水球即为源,它包括水球的位置和初始速度。在本专利技术中,用填充满水球的粒子集表示这个水源。步骤(1-2):初始化流体运动的边界条件;将流体运动所在的环境模型利用体素化方法转化为NS方程计算时可识别的边界。该边界包含两个部分:固体与液体边界、空气和液体边界。本专利技术使用一个标记位标识不同的边界。所述步骤(2)的多精度粒子集是指由半径有大小区别的粒子组成的集合;所述步骤(2)的步骤如下:步骤(2-1):定义并计算多精度粒子半径的自适应分布函数;步骤(2-1-1):定义并计算由多精度粒子集所形成的二维或三维形状的中轴粒子集;给定两个邻居粒子i和j以及精度控制常数c,如果dis(i,k)<c且dis(j,q)<c,其中粒子k和q分别是距离i和j最近的表面粒子,若满足acos(yi-xi||yi-xi||·yj-xj||yj-xj||)>γ,||yi-yj||>||xi-xj||---(1)]]>则粒子i和j为中轴粒子集中的粒子。其中,γ表示角度的阈值,取值为γ=60;yi为粒子k的位置,yj为粒子q的位置。公式(1)中第一个条件表明两个互为邻居的粒子i和j位于中轴两侧,而第二个条件则说明k和q的距离需要大于互为邻居的两个粒子i和j之间的距离。如果一个粒子没有邻居,则该粒子也是中轴粒子集上的粒子。另外,dis(i,k)<c和dis(j,q)<c表明本专利技术定义的中轴上的粒子与流体表面粒子的距离小于给定常数c。c越大,中轴粒子越多;c越小,中轴粒子越少。步骤(2-1-2):计算流体表面M的粒子y对应的多精度函数值为MRlfs(y)=min(||pM-y||,c)。其中,pM为中轴上距离y最近的粒子,c为定义中轴时的常数。步骤(2-1-3):将流体表面粒子y对应的自适应多精度函数值拓展到流体V的内部。表示为MRelfs(x)=miny∈M{||x-y||+MRlfs(y)本文档来自技高网...
基于多精度融合的流体动画生成方法

【技术保护点】
基于多精度融合的流体动画生成方法,其特征是,包括如下步骤:步骤(1):初始化NS方程的初始条件和边界条件;所述初始条件为流体源S,流体源S由SPH粒子集P表示;所述边界条件B包括固体与液体边界、空气和液体边界;步骤(2):根据初始化的流体源S及其对应的粒子集P,基于NS方程,建立基于SPH的多精度流体计算方法,获得多精度粒子集;步骤(3):对步骤(2)的多精度粒子集进行预处理,将处理后的粒子集使用八叉树存储;步骤(4):从八叉树顶层开始不断重复迭代执行步骤(5)直到八叉树底层;步骤(5):对八叉树的每一层,计算并提取该层对应精度的流体表面网格;步骤(6):将不同精度的流体表面网格融合成一个流体表面,使用真实感渲染获得每帧的流体动画;步骤(7):如果当前帧数小于用户设定的动画帧数,则转步骤(2)继续下一帧流体动画的计算,最终得到体现多尺度细节的流体动画。

【技术特征摘要】
1.基于多精度融合的流体动画生成方法,其特征是,包括如下步骤:
步骤(1):初始化NS方程的初始条件和边界条件;所述初始条件为流体源S,流体源S
由SPH粒子集P表示;所述边界条件B包括固体与液体边界、空气和液体边界;
步骤(2):根据初始化的流体源S及其对应的粒子集P,基于NS方程,建立基于SPH
的多精度流体计算方法,获得多精度粒子集;
步骤(3):对步骤(2)的多精度粒子集进行预处理,将处理后的粒子集使用八叉树存储;
步骤(4):从八叉树顶层开始不断重复迭代执行步骤(5)直到八叉树底层;
步骤(5):对八叉树的每一层,计算并提取该层对应精度的流体表面网格;
步骤(6):将不同精度的流体表面网格融合成一个流体表面,使用真实感渲染获得每帧
的流体动画;
步骤(7):如果当前帧数小于用户设定的动画帧数,则转步骤(2)继续下一帧流体动画
的计算,最终得到体现多尺度细节的流体动画。
2.如权利要求1所述的基于多精度融合的流体动画生成方法,其特征是,
所述步骤(1)初始化NS...

【专利技术属性】
技术研发人员:张桂娟陆佃杰吕蕾刘弘郑向伟
申请(专利权)人:山东师范大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1