欧训勇(琼州学院 电子信息工程学院,海南 三亚 572022)
二维数据随机延拓成三维水域动画方法研究*
欧训勇
(琼州学院 电子信息工程学院,海南 三亚 572022)
提出一种简单有效的、节约计算开销的方法,用于制作实现三维场景中水域动画效果。该方法的实现过程为利用二维模拟水流或波浪数据延拓到三维空间中,实现水沿其主导传播方向产生波动动画,其中利用了基于物理方程和粒子系统的方法。在动画过程中,这些二维水流帧画面被随机地沿横向方向取样,在动画时间和由用户自定义噪声的参数设置下取得的切片(称为时间片)结构中进行。在重构三维水流画面中,使用了带平滑滤波器的几何技术,以弥补因取样所造成的切片损伤。使用随机布朗运动噪声数据补偿三维画面数据,逼真地显示了涟漪波和怒涛波的动画。
涟漪波;怒涛波;随机延拓;仿真
近些年来,计算机动画技术表现得极为突出,取得了丰硕的成果。借助计算机图形技术对各种自然现象的二维、三维动画自动生成的研究方法不断涌现,例如计算机模拟生成的爆炸、水流、波浪等动画效果。这些自然现象的计算机生成方法给动画制作带来了极大的方便,为二维和三维动画场景的制作缩短了周期、降低了成本。
对于创作大面积水域动画,如海面的波浪飞溅及波浪汹涌澎湃的动画时,因其过于复杂,计算量大,这在计算机动画领域是一个极具挑战的课题。本文提出一种简单高效、节约计算量的方法来实现大面积海浪、波涛的动画生成。其原理为利用水波动的二维仿真数据随机延拓成三维水流波动效果。其实现过程如图1所示。
图1 由二维切片构成的三维动画空间
计算机模拟水流动画技术已经取得了长足发展。参考文献[1]利用小振幅波理论和细胞自动机方法构建水波动画的算法;参考文献[2]使用参数方法描述水流动画;参考文献[3]基于水面的正弦关系建模描述大型海浪动画及画面渲染技术,在处理更复杂的水动力学有局限性;为获得更为真实的水波动画效果与飞溅效果,参考文献[4]使用粒子系统结合高维场模型技术模拟水流动画;而参考文献[5]描述通过添加粒子产生喷雾和泡沫的水动画的视觉效果;在参考文献[6]中,表现一个全三维波浪粉碎效果的动画是通过控制用户定义的二维切片库进行的;参考文献[7]提出了基于粒子系统模拟的自适应采样算法,着眼于几何形状复杂区域的计算,同时减少了流体深处的粒子数。
本文的方法由参考文献[8]的思想改良而成,有关要点如下:
(1)引入新的随机内容,提供了更好的可控性;
(2)随机布朗运动(FBM)噪声的使用,低/高通滤波器(LPF/HPF)和参数 β(相对于波前的形状/复杂性)的效果;
(3)多边形生成渲染,包括表面粒子检测、低通滤波器的切片取样。
2.1模拟仿真方法
一般来说,水动力学可以由如下微分方程描述:
其中,u是速度,t是时间,ρ为密度,p是压力,ν是粘度,f是外力。
MPS方法[9]是通过粒子相互作用来解决式 (1)和(2)的。对式(2)应用压力映射后,MPS方法离散化并转化成粒子相互作用的方程。粒子间的所有作用仅限于给定的截止半径re内。两粒子间相互作用的重量被定义为:
其中,r分别是两粒子i和j在位置ri和rj间的距离。
在MPS方法中,流体的局部密度是用粒子数密度(PND)来表示的。粒子i的PND被定义为:
在自由表面的外侧区域中不存在粒子时,自由表面上方的PND值减小。这样,水粒子i满足的条件为:
其中,n0是PND的标准值,δ是阈值,它们被认为是在自由表面上。
2.2水粒子分类
在三维中重建流水表面,把水粒子根据它们的PND分类。这一简单的分类的优势在于,可以无需特殊处理或计算,就能得到水表面和飞溅水花粒子数的合理近似值。由以下条件根据式(6)进行分类:
(1)飞溅的水花粒子ni<δ1n0;
(2)水表面粒子 δ1n0≤ni≤δ2n0;
(3)水中粒子ni>δ2n0。
δ1和δ2为用户自定的阈值。
2.3二维水波仿真
利用二维MPS方法对涟漪波和怒涛波两类不同的水波进行模拟,其算法如下[10-11]:
(1)初始化模拟环境;
(2)for each时间步长;
(3)添加粒子;
(4)计算并赋予粒子作用力;
(5)平流粒子数;
(6)设置相邻粒子和计算粒子数(PND);
(7)提取水表面或飞溅水花粒子数;
(8)删除粒子;
(9)end for。
程序实验中使用了一些重要的仿真参数,各参数的值如表1所示。
表1 仿真参数及阈值
对上述的二维水波动画方法,以随机方式延拓成三维空间中的水波。对于三维表面重建,使用二维高斯滤波器。
3.1随机延拓方法
很容易想象,如果一个单一的二维波面在三维中被复制,所产生的表面在横向方向上看起来绝对是均匀的,如图2所示。
图2 二维水波延拓三维水波
切片采样过程以下列随机公式取得:
其中,Sik为仿真动画的帧;i为自然数,是动画时间;k取值0,1,…,K-1,是动画切片;N是噪声函数;F为噪声波动范围参数;A为控制动画速度的参数;中括号“[]”表示为运算后取最接近的整数。对于更换噪声函数N,采用随机布朗运动(fBm或也称为 1/fβ)的噪声。fBm噪音完全由它的功率频谱控制,与频率f成反比,参数β为加权系数。
3.2曲面近似
为了处理三维表面重建,使用带高斯滤波器的高度场技术。这能够重建近似的三维水面,而补救线状伪影所造成的二维切片的采样。
在XZ平面上创建大小为N×M基础网格如下:
其中,n和m为整数;Δx、Δz为网格间距值。
为了取得更好的结果,在两个相邻的切片和截面积(3Δx,2Δz)高斯滤波参数 σ=2.0之间插入一个额外的切片。
3.3三维涟漪波
对于模拟涟漪波时,通过在不同方向合成几类波的方式略有不同。用这种方法,消除了沿横向方向的波形外观,它产生在单一方向上的运动。为了最终的 h(P)值在每个小区中心 P上的基础网格IXZ逼近,由式(10)合成临近点在每个方向上的高度。
其中,ω是用户自定义重量值,hd是相邻点Q在d方向上的高度值。
根据前述的方法和相应程序算法,在 Intel(R)Core (TM)主频为 2.83 GHz,内存为 4 GB的环境下,利用Delphi结合 OpenGL三维引擎库进行编程实现。涟漪波和怒涛波在不同的布朗随机运动噪声参数下取得了不同动画效果,如图3、图4所示。
图3 怒涛波
图4 涟漪波
本文提出了利用二维水面波动曲线延拓形成三维的水波动画效果,利用各类技术补偿二维切片损伤重构三维曲面,形成逼真的海水波涛及涟漪动画效果,在实验过程中较同类方法实现的三维海浪波涛动画有相当的效率。节约使用大量的粒子数,为后期动画效果的渲染节约了系统资源。此研究为动画制作中的大型水域动画场景的计算机生成提供了技术支持,节约了大量类似开发的成本并缩短制作周期。此项技术方法将继续向GPU领域迈进,以期在今后的研究中能更好地以快速渲染自动生成大型水域中的波涛汹涌、水浪涡旋等动画效果。
[1]杨怀平,胡事民,孙家广.一种实现水波动画的新算法[J].计算机学报,2002,25(6):612-617.
[2]FOURNIER A,REEVES T.A simple model of ocean waves[J].Proceedings of SIGGRAPH,1986(20):75-84.
[3]DARLES E,CRESPIN B,GAZANFARPOUR D.A survey of ocean simulation and rendering techniques in computer graphics[J].Computer Graphics Forum,2011,30(1):43-60.
[4]MAES M M,FUJIMOTO T,CHIBA N.Efficient animation of water flow on irregular terrains[C].Proceedings of International Conference on Computer Graphics and Interactive Techniques,GRAPHITE′06,2006:107-115.
[5]TAKAHASHI T,FUJII H,KUNIMATSU A,et al.Realistic animation of fluid with splash and foam [J].Computer Graphics Forum,2003,22(3):391-400.
[6]ADAMS B,PAULY M,KEISER R,et al.Adaptively sampled particle fluids[J].ACM Transactions on Graphics,2007,26(3):48.
[7]HONG W,HOUSE D,KEYSER J.Adaptive partcles for incompressible fluid simulation[J].The Visual Computer,2008,24(7):535-543.
[8]FUJIMOTO T,MIYAUCHI S,SUZUKI T,et al.Noisebased animation of waving phenomena[C].Proceedings of IWAIT2005,IEICE Technical Report.Image Engineering,2005,104(545):93-98.
[9]KOSHIZUKA S,NOBE A,OKA Y.Numerical analysis of breaking waves using the MPS method[J].International Journal for Numerical Methods in Fluids,1998(26):751-769.
[10]李海,汪继文.基于粒子系统的位置可控有声烟花模拟[J].微型机与应用,2013,32(9):32-34.
[11]袁雪霞,王继州.导弹烟雾的快速模拟[J].微型机与应用,2013,32(10):32-34.
Research of stochastic extension method for animating water flows from 2D to 3D
Ou Xunyong
(Electronic and Information Engineering College,Qiongzhou University,Sanya 572022,China)
This paper presents a simple and efficient method for animating different types of water flows with emphasis on a surging wave.The method employs a stochastic approach of extending 2D simulation data into 3D animation space.It utilizes a physically-based and particle simulation method.At the animation step,these 2D surface frames are stochastically sampled along the transverse direction in the animation time and slice(called time-slice)domain with the aid of a user-defined noise function.For the surface reconstruction in 3D,we use a geometrical technique with a smoothing filter in order to remedy undesired 2D artifacts that result from the slice sampling.We apply our method to other types of water flows,indicating further interesting applications of a ripple wave and a surging wave.
ripple wave;surging wave;stochastic extension;simulation
TP391.9
A
1674-7720(2015)02-0041-03
三亚院地科技合作项目(2013YD30)
(2014-08-28)
欧训勇(1976-),男,硕士,副教授,主要研究方向:二维数字动画及图象处理技术。