(计算机应用技术专业论文)基于浅水方程模型和粒子模型的水动画模拟.pdf_第1页
(计算机应用技术专业论文)基于浅水方程模型和粒子模型的水动画模拟.pdf_第2页
(计算机应用技术专业论文)基于浅水方程模型和粒子模型的水动画模拟.pdf_第3页
(计算机应用技术专业论文)基于浅水方程模型和粒子模型的水动画模拟.pdf_第4页
(计算机应用技术专业论文)基于浅水方程模型和粒子模型的水动画模拟.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)基于浅水方程模型和粒子模型的水动画模拟.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽大学硕士学位论文 摘要 在计算机动画模拟领域中,对水动画的模拟是一项困难而又有意义的课题。 本文中使用了两种方法对水动画进行模拟。一种是利用求解浅水波方程常用的数 值方法,另一种是通过粒子系统的方法。 我们使用的数值方法包括有限元法,有限差分法,复合有限差分法,有限体 积法,复合有限体积法。通过试验模拟结果,我们比较了利用这些方法在模拟特 定水流对象时的优势和缺点。与此同时,我们利用粒子系统成功的模拟了喷泉、 水流和瀑布等水流现象,模拟了可以互动的水纹现象,并与传统的数值方法的模 拟效果进行了比较。 在对水动画模拟的实现过程中,我们利用o p e n g l 这一绘图工具将算得的每 个时间步数据可视化,从而我们可以看到水流的运动形态画面。另外,在水纹互 动试验制作过程中,我们使用o p e n g l 的鼠标调用函数,利用鼠标事件回调函数, 从而达到互动的效果。 本文第一部分我们介绍目前水动画制作这一课题研究现状及常用技术;在第 二部分我们介绍常用的数值方法,并对这些方法进行了比较;第三部分详细介绍 了粒子系统的构造过程,粒子系统的物理模型,以及粒子运动力学和粒子图像绘 制;在第四部分,我们介绍了水动画的制作过程,给出了我们所用工具o p e n g l 的基本绘制方式及其算法步骤的实现方法;最后我们模拟了一些常见的水流现 象。 关键词:水动画,浅水波方程,物理模型,粒子系统 lv, 安徽大学硕士学位论文 a b s t r a c t a b s t r a c t t h eb e h a v i o ro fw a t e rf l o wi so n eo ft h ed i f f i c u l ta n dm c a m n g f mp r o g r a m so f c o m p u t e ra n i m a t i o nd o m a i n i nt h i st h e s i s ,w eu s et w ow a y st o s i m u l a t el i q u i d p h e n o m e n a o n ei st h eg e n e r a ln u m e r i c a lm e t h o dt os o l v et h es h a l l o ww a t e re q u a t i o n s , a n o t h e ri st h ep a r t i c l ew a y t h en u m e r i c a lm e t h o d sw eu s ei n c l u d et m i t ee l e m e n tm e t h o d ,f i n i t ed i f f e r e n c e m e t h o d ,c o m p o s i t ef i n i t ed i f f e r e n c em e t h o d ,f i n i t ev o l u m em e t h o da n dc o m p o s i t e f i n i t ev o l u m em e t h o d w eh a v ec o m p a r e dt h ea d v a n t a g ew i t ht h ed i s a d v a n t a g eo f t h e s em e t h o d si nt h es i m u l a t i o no f t h ep a r t i c u l a rw a t e rf l o w m e a n w h i l e ,w es u c c e e d t os i m u l a t ef o u n t a i n ,w a t e rf l o w ,w a t e r f a l la n da l t e r n a n tr i p p l eb yp a r t i c l es y s t e m , a n dc o m p a r e di t 埘t ht r a d i t i o n a ln u m e r i c a lm e t h o d u s i n gt h et r a c e rt o o lo p e n g lt om a k et h ed a t ai ne a c ht i m es t e pv i s i b l e w ec a n s e et h e 蛳t l e so f t h eb e h a v i o ro f w a t e rf l o wi nt h ep r o c e s so f c a r r y i n go u tw a t e rf l o w s h n u l a t i o n b e s i d e s ,i nt h ep r o c e s so fa l t e m a n tr i p p l ee x a m i n a t i o n , w ea c h i e v e dt h e a l t e m a n te f f e c tb yu s i n gt h em o u s et r a n s f e rf u n c t i o no fo p e n g l ,a n du s i n gm o u s e e v e n tt oc a l l - b a c kf u n e t i o m i nt h ef i r s tp a r to ft h i st h e s i s ,w ei n t r o d u c et h ep r e v a l e n tm e t h o d sa n dt o o l so f s i m u l a t i o no f w a t e rf l o w i nt h es e c o n dp a r tw ei n t r o d u c 圮g e n e r a ln u m e r i c a lm e t h o d s a l s o , w ec o m p a r e dt h e s em e t h o d s i nt h et h i r dp a r t , w ei n t r o d u c e dt h ef o r m a t i o n p r o c e s so fp a r t i c l es y s t e m , t h ep h y s i c a l l yb a s e dm o d e l i n go fp a r t i c l es y s t e m ,t h e p a r t i c l em e c h a n i c sa n dt h ep r o t r a c t i o no fp a r t i c l ei m a g e i nt h ef o u r t hp a r t , w e p r e s e n t e dt h ef o r m a t i o np r o c e s so f w a t e ra n i m a t i o na n dt h eb a s i cw a y so f p r o t r a c t i o n o f o p e n o la sw e l l 器t h ei m p l e m e n t a t i o no f i ma r i t h m e t i cs t e p s f i n a l l y w ei l l u s t r a t e t h er e s u l t so f t h es i m u l a t i o n so f w a t e rf l o w k e y w o r d s :w a t e ra n i m a t i o n ;s h a l l o ww a t e re q u a t i o n s ;p h y s i c a l l yb a s e dm o d e l i n g lp a r t i c l e s y s t e m llfl 独创性声明 y9 7 8 9 2 2 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据鸯所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得雾蝴其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示谢意。 学位论文作者签名 毒庑 签字日期:拶善年历月磊r 日 学位论文版权使用授权书 本学位论文作者完全了解奶数7 嗜有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和 借阔。本人授权自絷如参以将学位论文的全部或部分内容编入有关数据库进行 检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:毒彩 签字日期:力卯彩年乒月西日 学位论文作者毕业去向: 工作单位: 通讯地址: 导师签名:奠救 签字日期:) 椰6 年年月才日 电话 邮编 气 安徽大学硕士学位论文第一章绪论 第一章绪论 1 1 课题的现状 近年来,自然景物的模拟一直是计算机图形学最具挑战性的问题之一,关于 山、水等自然景物的模拟,在计算机游戏、影视、广告各领域中有着广泛的用途, 作为自然景物模拟的重要内容,对水流的模拟正日盏引起人们的关注,但与其它 景物模拟相比,关于水流的模拟又更为困难,这是因为水流在不同情况下形态各 异,而且其显示又有着特殊的要求。在本课题中,我们根据浅水波方程的物理模 型对水流现象模拟作一个尝试,我们着重对水流运动的整体形态进行模拟,这包 括水流的反射、绕射等现象,也包括水纹、涟漪、瀑布、喷泉等自然界常见一些 水流现象。 基于数值方法的水动画模拟技术是2 0 世纪8 0 年代后期发展起来的一种新的 计算机动画技术【1 1 经过近几年的发展,它已在图形学中成为一种具有潜在优势 的三维造型和运动模拟技术尽管该技术比传统动画技术的计算复杂度要高得 多,但它能逼真地模拟各种自然物理现象,这是基于几何的传统动画生成技术所 无法比拟的。动画软件s o f t i m a g e 在基于动力学的动画功能方面已相当成熟,它 能处理诸如重力、风、碰撞检测等在内的复杂动力学模型。随着计算机软硬件性 能的提高,人们对水动画模拟的质量要求也越来越高,模拟的效果也越来越逼近 真实情景这使得计算机图形学、流体力学和水力学的工作者们在这方面也做了 积极地讨论,并且取得了令人满意的结果1 9 8 1 年,一种新的方法一b u m p m a p p i n g 方法成功的模拟了滴水涟漪的效果田通过粒子系统方法模拟的一些水 动画也十分逼真,例如瀑布、喷泉【3 ,4 5 】。从前人的研究工作来看,对水动画的数 值模拟大致分两类,一类是基于构造的方法,一类是基于物理模型的方法。前者 的工作思路是构造一个数学函数来描述波形的变化,而后者则是从物理角度使用 物理控制方程描述水流运动规律,且需要的人工干预更少因为两种方法各有利 弊,所以,具体采用那种方法进行水动画的模拟,要针对需要模拟的水流对象来 定。 安徽大学硕士学位论文 基于浅水方程模型和粒子模型的水动画模拟 1 2 课题的目标 从计算机图形学的角度讲,要使动画具有感染力,应该使动画中的场景看起 来合理,即要与现实中的场景相接近,也就是说逼真。这就要求动画中的场景符 合现实中的物理规律。因此,让动画场景中的各种元素在物理规律的约束下运动, 从而看起来逼真,就成了一个自然的想法。建立一个合理的物理模型来描述运动 场景中的各元素的运动,然后求取相应的物理方程的数值解,得到场景中各元素 在每个时间步的状态,再把每个时间步的场景绘制出来,这就是用基于数值方法 制作动画的基本思路。 用基于数值方法制作动画,制作者不必像传统的关键帧法那样,直接设计指 定动画场景中各元素在每个时间步的状态,而是只要指定各元素的初始状态,其 余备帧的状态通过求解物理方程自动产生这样可以节省艺术劳动也就是说, 一个不懂艺术创作的人,也可以用基于物理模型的动画工具制作出具有艺术感染 力的动画来。 , 动画捕捉法是另一种广泛应用的制作动画的方法。这种方法是在动画场景中 的目标元素的特征点上安装传感装置,然后用多视点摄像机等设备记录下这些特 征点的运动,再设法提取这些运动点的数学模型。在制作动画时,让动画场景中 的元素按数学模型运动这种方法的实质可以看成拍电影,可以得到很逼真的运 动形态,但没有足够的伸缩性,因为在其他的动画中,难以重复利用。从计算流 体动力学角度看,人们求解流体力学方程,得到其数值解,表现形式为大量的离 散数据,如高度场、速度场、压力场,单独从数据上是难以看出其中的分布规律, 需要对这些数据场进行可视化。在一个三维的空中,用计算机图形学中的方法把 这些数据绘制成图形,加上光和影,使得图形看起来更悦目或是特征更明显,也 是一个自然的需求。如果要考虑数据场在各个时间步的变化,把相应的图像连接 起来制作成动画,也就成了一个自然的想法。 我们希望能集成计算机图形学与数值分析两方面的技术,制作计算动画,为 工程和艺术两个领域提供工具。一方面,提高求解的精度,可以使动画用于工程 上;另一方面,增加计算机图形学真实感处理,可以使动画用于艺术创作 2 安徽大学硕士学位论文第一章绪论 1 3 本文使用的方法 在水动画模拟过程中,经常采用的数值方法是计算浅水波问题。主要原因是 浅水波方程是浅水流运动规律的重要的依据。另外,围绕浅水波方程的数值方法 已经积累有大量经验。这也给我们水动画的模拟提供一条捷径。本文就是采用了 已经相当成熟的常用方法:有限元法、有限差分法、复合有限差分法、有限体积 法、复合有限体积法。有限差分方法是基于物理模型的水动画模拟经常使用的方 法,其原因是差分方法简单易行,计算量较小,适合于动画的制作。复合有限差 分法是利用求解守恒问题的两个熟知差分格式l a x - f r i e d r t c h s ( l f ) 格式和 l a x - w e n d r o f f ( l w ) 格式组成复合有限差分方法之所以采用这种复合型方法另一 个原因是这两种方法使得我们可以在动画模拟中进行人工干预,比如我们可以在 动画模拟中通过调整l w 和l f 格式参与数值计算的比例进行控制,对算法的色 散性和耗散性进行调节,观察试验结果,得出采用不同方法作水波动画时对l w 和l f 格式计算的参与要求,看什么比例下模拟的现象更加真实。有限体积方法 比有限差分方法对于边界的适应性更大,可以模拟各种不同水域边界的水流现 象,我们觉得这种方法相比于有限差分方法更具有广阔的前景。 为了与以上数值方法进行比较,我们还在文中的试验里采用了一种基于粒子 系统的方法生成水动画。粒子系统就是用大量的简单图元来表示某个物体,高性 能的粒子系统可以真实地模拟出一些虚拟场景。由于一个粒子系统中有多种类型 的子系统,每个子系统又由大量的粒子组成,高效地管理大量的粒子以及计算大 量粒子的实时参数是一个难点,本文提出了使用面向对象的方法来实现一个粒子 系统。 在所有的动画模拟中,水动画的生成是一个很复杂的图形生成,选用合适的 图形开发工具非常重要。在科学计算,虚拟现实、仿真等方面,o p e n g l 一直处 于主要地位与其他工具相比,用o p e n g l 来绘制水动画具有图形质量高、程序 可移植性好等优点所以本文采用o p e n g l 来绘制水流形态在本课题中,我们 的目标是模拟自然界的水流现象。模拟水流现象要涉及多个方而的问题,如水流 中的光影特效、水流的运动形态。人们往往只能侧重解决其中的一个方面。在我 们的课题中,我们侧重于模拟水流的运动形态,试图借用数值分析工具模拟水流 中的波,再加利用o p e n g l 的真实感处理,得到逼真的水动画。 安教大学硕士学位论文基于浅水方程模型和粒子模型的水动画模拟 1 4 本文所做的工作 本文做了如下工作: 1 本文对求解浅水波方程有限差分法、有限体积法、有限元方法的进行了比较, 通过实验得出各个数值方法的优点和缺点。 2 本文利用上述的数值方法对单水滴、多水滴、瀑布和二维溃坝的水动画进行了 模拟。 3 本文讨论了基于粒子系统动画模拟的详细构造过程并利用粒子系统模拟了喷 泉、瀑布和水流动画。 4 本文利用粒子系统实现了水纹现象的动画互动。 5 本文详细介绍了如何利用o p e n g l 进行水动画制作。 4 安徽大学硕士学位论文 第二章水动画的建横 第二章水动画的建模 2 1 一维水流模型 力和内部水平切应力,而在三维水流模型中则区别对待1 6 】。 罢+ 掣:s 移) ( 2 1 1 ) 这里s 缈) 是源项,u 是守恒变量向量,尺u ) 是流函数,s ( u ) 是源项 u = 三 ,f c = 砌:二: 2 ,s c = 劝g i 。,) 2 2 二维水流模型 u = 朝,e = 地2 曼曲2 ,g = 加:曼朗: , 其中_ j i 为水的深度,“、v 为深度平均速度分量,为河床斜率项,卸为底部摩 5 安徽大学硕士学位论文基于浅水方程模型和粒子模型的水动画模拟 擦力项,g 为重力加速度。 2 3 三维水流模型 描述三维浅水流动的通常采用如下的n s 方程: l v u 2 0 1 罢:书v 妙一三w + 田2 u + f ( 2 1 。3 ) l“p 其中刃2 u 是粘滞力向,三v r p 是压力项,p v 妙是对流项,f 是重力作用项, 上式展开如下: 罢+ 祟+ 罢:o ( 2 1 4 ) 鲁+ 警+ 警+ 百o u w = 弓罢+ & + 堕i g x 2 + 等+ 刳 渤 石+ 百+ 百+ 百一万素+ & 川一+ 矿+ 萨j ( 2 1 5 ) 詈+ 警+ 等+ 警= 一吉考+ 易+ 坐i g x 2 + 等+ 窘 回 百+ 百+ 万+ i 一万茜+ 易川一+ 矿+ 万j ( 2 1 回 詈+ 警+ 詈+ 警= 弓鲁+ g :+ 吖窘+ 雾+ 害) 乃 百+ i + 百+ i 一万言+ :w l 丽+ 矿+ 可j ( 2 1 7 其中,i l , e w 分别是在三个方向x , y ,z 的速度,p 是局部压力,g 是重力, 是粘性系数,该方程解释了水流在流体内部的运动特征,三维浅水波方程由于反 映水流的空间的运动特征,因此可以准确的模拟许多水流现象。 从制作动画的角度上看,上述方程可实现水流的一维,二维和三维的动画模 拟,一般地,一维浅水波方程的动画模拟比较简单,无需对模拟的场景进行渲染, 仅仅需要把模拟的数值方法在时间和空间上离散化,模拟的时候对每一个时间步 周期性的进行图形显示即可,二维与三维方程的水动画模拟较为复杂解,二维 n - s 方程仅考虑了水平方向速度的分布,忽略了水流竖直方向地速度,而三维 n - s 方程考虑了水流竖直方向地速度,因此求解三维n - s 方程可以得到流体完整 的速度场,这些情况的不同决定了它们模拟的水流现象也不尽相同。 6 安徼大学硕士学位论文 第三章求解浅水波方程的常用数值解法 第三章求解浅水波方程的常用数值解法 浅水波方程属于偏微分方程,求解偏微分方程有几种常见的方法,如有限元 法,有限差分法,有限体积法以及复合有限差分法和有限体积法。它们具有各自 的优点和缺点。在这一章里,我们先介绍一下这几个常用数值方法的特点,然后 再将这几种方法进行比较。 3 。1 有限差分法 有限差分法( f i n i t ed i f f e r e n c em e t h o d ) 是最早出现的,也是应用最广泛的 数值方法田。它历史悠久,理论系统成熟。采用有限差分法对流体力学问题进行 数值模拟分为两步,第一步要对方程的解域进行离散化,第二步要对方程本身及 其边界条件进行离散,即设计它们的差分格式。 3 1 1 有限差分格式 考虑如下的标量非线性双曲线守恒方程 丝+掣=00t 一 ( 3 ) + - = k 二=f 3 1 1 、 屠 7 其差分格式可写为 ? “= “? 一五( z 锄一丘咒) ( 3 1 2 ) 其中a = ,缸,丘k 和丘为数值通量, 一阶迎风格式的通量为: 五= 寻“+ 丘。) 一寻y b 叫讼叫” ( 3 i - 3 ) 式中a ,一= “一一“,口,+ _ ;为特征速度,即 f ,= “一z 钆2 萨 y k x ) 为耗散函数,耗散函数满足 蚓:般0 【 2 占 7 a i 州2 材0 ( 3 1 4 ) a j 州2 砧= 0 | 口州:卜占 。 ( 3 1 5 ) k + v2 i r , 其中r l 是第i 个元球的有效半径,r 是空间一点p ( 工,_ ) ,力到元球中心 只( t ,y ,五) 的距离,即,= 扳i j 了了石= 万严i 丽。采用这中势函数具有 一下良好性质:,( o ) = l ,z ( o ) = o ,f a r 。) = o ,7 ( 胄,) = 0 ,当,= 置2 时, f a r ) = 1 2 ,即单个元球所表示的曲面刚好是半径为r , 2 的球面。 对于由n 个元球组成的元球系统,所对应的等式面为满足以下方程的点集: 地弘力= q ,z - t = o 其中吼为第i 个元球的浓度,吼 o , t o 为域值。 元球的绘制有两种方法。一种为把所构造的隐函数曲面用多边形逼近【3 5 1 。然 后对多边形进行消隐绘制;令一种方法为光线跟踪方法。本文采用的是基于 b e z i e rc l i p p i n g 的光线跟踪方法【3 6 1 b e z i e rc l i p p i n g 实际上是一种代数方程求根 方法,给定一个代数方程,先把它转换成b e z i e r 基函数的形式,然后利用b e z i e r 瞌线的凸包性和可分割性来快速迭代求得代数方程的根。 求解步骤如下: ( 1 )元球系统中每个元球按其有效半径决定了一个半径为置的球墨,先 求出光线与这些球的交点。 ( 2 )把光线与球墨的相交区间段用参数t 。( o t i 1 ) 进行重新参数化,并 把相应元球的势函数用表示成非参数b e z i e r 曲线的形式。 ( 3 )把光线与球墨的交点按光线的方向进行排序 ( 4 )对每一区间段,把表示相应势函数的b e z i e r 曲线对被测试区间进行 裁剪,并把裁剪后的b e z i e r 曲线复合成一条。 ( 5 )对复合成的b e z i e r 曲线,用b e z i e rc l i p p i n g 方法求根。 采用b e z i e r c l i p p i n g 求根不仅速度快,而且由于是从视点出发依次对每段区间进 安徽大学硕士学位论文 基于浅水方程模型和粒子模型的水动画模拟 行求交测试,所以不需要排序过程。一旦可见点对应的第一个最小根找到后,求 解过程即可终止。 4 4p a r t i c l es y s t e m p a r t i c l es y s t e m 是一种物理模型,p a r t i c l es y s t e m 的核心不在于如何显 示图形,而是在于对某个物理模型的理解和分析。只有基于物理模型的方法,才 能模拟出随机而逼真的自然景象。粒子的运动( 变化) 规律可以很简单也可以很 复杂,这取决于你模拟的物理模型的复杂程度。 其实这时我们会很容易地把一个p a r t i c l es y s t e m 抽象成一个类。的确,如果 从代码的管理、维护的角度来讲,我们应该把一个p a r t i c l es y s t e m 封装成一个类, 使用面向对象的开发方式,但是我们应该注意:在编写图形、游戏程序的时候, 速度、效率是我们更为关心的话题,使用类会使我们的代码易于管理,但这是以 失去速度为代价的。对于一个粒子系统,我们的代码的数据处理量会随着粒子数 的上升而呈指数级增长所以,在编写p a r t i c l es y s t e m 的程序时应尽量避免使用 类,而应该用更为优化、简洁的代码处理。 下面我以瀑布程序为例,说明以下一个p a r t i c l es y s t e m 是怎样建立并工作的。 首先,我们需要一个结构来存放每一个粒子的属性,我们可以进行如下定义: a t m c ts t p a n i c l e f l o a tx :x - c o o r d i n a t e s f l o a ty ;y - c o o r d i n a t e s f l o a tv x :x - v e l o c i t y f l o a tv y ;y - v e l o c i t y f l o 砒v y a c c :协a c c e l e r a t i o n f l o a tl i r e ;h o wl o n gd o e si tl i v e 7 f l o a td e c a y ;w h e nw i l li td i e 7 p a r t i c l e l p p a r t i c l e ; 由于在这个瀑布模型中,我们把每一个粒子的运动都看作是平抛运动,所以 我们无须定义x 轴方向上的加速度v x a c c 接下来我们要做的工作便是对粒子的初始化和控制了。对于粒子的初始化我 们可以用如下的函数来实现; 3 6 安徽大学硕士学位论文 第四章基于粒子系统的水动画模拟 v o i dd r o p i n i t i a l i z e ( i n tx ,h a ty ) f o r ( r o ti = o ;i m a x p a r i t c l e ;i + + 、 i f ( d r o p i 1 i f e = 3 1 0 ) d r o p i v x _ a = ( - - 1 ) : i f ( ( d r o p i y = l g o ) ) d r o p i 、r ) r 杠( - 1 ) : d r o p i d e c a y + = - o 0 5 f ; d r o p i v y + = o 1 f ; ) ) ) ) 而后,只需要循环调用这两个函数就可以完成对粒子的控制了 3 7 安徽大学硕士学位论文 基于浅水方程模型和粒子模型的水动画模拟 4 5p e rp i x e lc o n t r o l 相对于p a r t i c l es y s t e m ,p e rp i x e lc o n t r o l 更体现的是一种编程思想, 是一个抽象的概念,而非一种具体的模型。通过对屏幕上的每一个点分别进行控 制来共同完成一个整体的效果便是p e rp i x e lc o n t r o l 的总体思想。这种方法对 火焰,烟雾等模拟效果比较真实。由于本文主要是以水动画模拟为主,所以对这 种方式就不详细叙述。 3 8 安徽大学硕士学位论文 第五章水动画制作过程 第五章水动画制作过程 从制作角度,不同于利用电影胶片或录像带以逐格记录的方式制作出来的传 统动画,计算机动画是利用动画制作软件对序列图形图像进行各种控制和直接运 行有关指令而产生的动画。它可以划分为人机动画,这种制作技术是采用人工绘 制动画原理或人工制作动画模型,扫描或拍摄进入计算机后经过计算机进一步加 工( 主要是上色) 或动作控制,再由计算机合成并播放。另外一种是机制动画, 这种制作技术是指从动画原画创作、模型构建到最后动作设计、音效、合成、播 放及输出全部在计算机内完成。实践已经证明,利用计算机可以完成所有类型的 动画制作。最后是编程动画,编程动画( p r o g r a n l n i n ga n i m a t i o n ) 制作是指动 画完全由编程实现,而不是通过绘画,再由计算机合成播放的典型的例子便是 计算机分形动画,分形画面是应用数学知识结合编程,( 目前通常采用的是v c 、 v b 、d e l p h i 语言) 产生的,分形画面产生的形态是通过自动逐步变化程序中的 变量值而实现的。有的编程工具是依托某个动画软件的,也就是动画软件携有的 编程模块,如3 d sm a x 中的m a x s c r i p t 、m a y a 中的m e l 、f l a s h 中的a c t i o n 、 d i r e c t o r 中的l i n g o 等等。利用它们编写程序并直接放在相应动画软件中运行。 有的是使用专门的图形开发工具如w i n d o w s 平台下的两个开发三维图形应用程 序的常用工具o p e n g l 和d i r e c t x ,这两个工具生成的动画往往有出神入化、令 人惊叹的效果鲫。本文中制作水动画就是使用这两个工具之一的o p e n g l 。首先 我们介绍一下我们使用的工具o p e n g l 5 1o p e n g l 简介 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这 些物体,我们必须能在三维空间描绘这些物体。我们又生活在一个充满信息的世 界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用 一种最直接的形式来表示这些信息。 最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技 术使我们能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种 技术就是可视化( v i s u a l i z a t i o n ) 技术【3 抑。可视化技术使人能够在三维图形世 界中直接对具有形体的信息进行操作,和计算机直接交流。这种技术已经把人和 机器的力量以一种直觉而自然的方式加以统一,这种革命性的变化无疑将极大地 安徽大学硕士学位论文基于浅水方程模型和粒子模型的水动画模拟 提高人们的工作效率。可视化技术赋予人们一种仿真的、三维的并且具有实时交 互的能力,这样人们可以在三维图形世界中用以前不可想象的手段来获取信息或 发挥自己创造性的思维。机械工程师可以从二维平面图中得以解放直接进入三维 世界,从而很快得到自己设计的三维机械零件模型。医生可以从病人的三维扫描 图象分析病人的病灶。军事指挥员可以面对用三维图形技术生成的战场地形,指 挥具有真实感的三维飞机、军舰、坦克向目标开进并分析战斗方案的效果。 更令人惊奇的是目前正在发展的虚拟现实技术,它能使人们进入一个三维 的、多媒体的虚拟世界,人们可以游历远古时代的城堡,也可以邀游浩瀚的太空。 所有这些都依赖于计算机图形学、计算机可视化技术的发展。人们对计算机可视 化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中s g i 公司推出的g l 三维图形库表现突出,易于使用而且功能强大。利用g l 开发出来 的三维应用软件颇受许多专业技术人员的喜爱,这些三维应用软件已涉及建筑、 产品设计、医学、地球科学、流体力学等领域。随着计算机技术的继续发展,g l 已经进一步发展成为o p e n g l ,o p e n g l 已被认为是高性能图形和交互式视景处理 的标准,目前包括a t t 公司u n i x 软件实验室、i b m 公司、d e c 公司、s u n 公司、 h p 公司、m i c r o s o f t 公司和s g i 公司在内的几家在计算机市场占领导地位的大公 司都采用了o p e n g l 图形标准。 值得一提的是,由于m i c r o s o f t 公司在w i n d o w sn t 中提供o p e n g l 图形标准, o p e n g l 将在微机中广泛应用,尤其是o p e n g l 三维图形加速卡和微机图形工作站 的推出,人们可以在微机上实现三维图形应用,如c a d 设计、仿真模拟、三维游 戏等,从而更有机会、更方便地使用o p e n g l 及其应用软件来建立自己的三维图 形世界。 5 1 1o p e n g l 提供直观的三维图形开发环境 o p e n g l 实际上是一种图形与硬件的接口它包括了1 2 0 个图形函数,开发 者可以用这些函数来建立三维模型和进行三维实时交互与其他图形程序设计接 口不同,o p e n g l 提供了十分清晰明了的图形函数,因此初学的程序设计员也能 利用o p e n g l 的图形处理能力和1 6 7 0 万种色彩的调色板很快地设计出三维图形以 及三维交互软件。 o p e n g l 强有力的图形函数不要求开发者把三维物体模型的数据写成固定的 安徽大学硕士学位论文 第五章水动画制作过程 数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其他不同格 式的数据源。这种灵活性极大地节省了开发者的时间,提高了软件开发效益。 长期以来,从事三维图形开发的技术人员都不得不在自己的程序中编写矩阵 变换、外部设备访问等函数,这样为调制这些与自己的软件开发目标关系并不十 分密切的函数费脑筋,而o p e n g l 正是提供一种直观的编程环境,它提供的一系 列函数大大地简化了三维图形程序。例如: o p e n g l 提供一系列的三维图形单元供开发者调用。 o p e n g l 提供一系列的图形变换函数。 o p e n g l 提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、 键盘、空间球、数据手套等这种直观的三维图形开发环境体现了o p e n g l 的技术优势,这也是许多三维图形开发者熟衷于o p e n g l 的缘由所在。 5 1 2o p e n g l 成为目前三维图形开发标准 o p e n g l 成为目前三维图形开发标准在计算机发展初期,人们就开始从事计 算机图形的开发。直到计算机硬软件和计算机图形学高度发达的九十年代,人们 发现复杂的数据以视觉的形式表现时是最易理解的,因而三维图形得以迅猛发 展,于是各种三维图形工具软件包相继推出,如p h i g s 、p e n 、r e n d e rm a n 等【3 鲥。 这些三维图形工具软件包有些侧重于使用方便,有些侧重于渲染效果或与应用软 件的连接,但没有一种三维工具软件包在交互式三维图形建模能力、外部设备管 理以及编程方便程度上能够o p e n g l 相比拟 o p e n g l 经过对g l 的进一步发展,实现二维和三维的高级图形技术,在性能 上表现得异常优越,它包括建模、变换、光线处理、色彩处理、动画以及更先进 的能力,如纹理影射、物体运动模糊等。o p e n g l 的这些能力为实现逼真的三维 渲染效果、建立交互的三维景观提供了优秀的软件工具。o p e n g l 在硬件、窗口、 操作系统方面是相互独立的。 许多计算机公司已经把o p e n g l 集成到各种窗口和操作系统中,其中操作系 统包括u n i x 、w i n d o w sn t 、d o s 等,窗口系统有x 窗口、w i n d o w s 等。为了实现 一个完整功能的图形处理系统,设计一个与o p e n g l 相关的系统结构为;其最底 层是图形硬件,第二层为操作系统,第三层为窗口系统,第四层为o p e n g l ,第 4 1 安徽大学硕士学位论文 基于浅水方程模型和粒子模型的水动画模拟 五层为应用软件。o p e n g l 是网络透明的,在客户一服务器( c l i e n t s e r v e r ) 体系结构中,o p e n g l 允许本地和远程绘图。所以在网络系统中,o p e n g l 在x 窗 口、w i n d o w s 或其它窗口系统下都可以以一个独立的图形窗口出现。 o p e n g l 作为一个性能优越的图形应用程序设计界面( a p i ) 而适合于广泛的 计算环境,从个人计算机到工作站和超级计算机,o p e n g l 都能实现高性能的三 维图形功能。由于许多在计算机界具有领导地位的计算机公司纷纷采用o p e n g l 作为三维图形应用程序设计界面,o p e n g l 应用程序具有广泛的移植性。因此, o p e n g l 已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员 所必须掌握的开发工具。 5 20 p e n g l 基本绘制方式 o p e n g l 是一个与硬件图形发生器的软件接口,它包括了1 0 0 多个图形操作 函数,开发者可以利用这些函数来构造景物模型、进行三维图形交互软件的开发。 正如上一章所述,o p e n g l 是一个高性能的图形开发软件包。o p e n g l 支持网络, 在网络系统中用户可以在不同的图形终端上运行程序显示图形。o p e n g l 作为一 个与硬件独立的图形接口,它不提供与硬件密切相关的设备操作函数,同时,它 也不提供描述类似于飞机、汽车、分子形状等复杂形体的图形操作函数。用户必 须从点、线、面等最基本的图形单元开始构造自己的三维模型。当然,像 o p e n l n v e n t o r 那样更高一级的基于o p e n g l 的三维图形建模开发软件包将提供方 便的工具。因此o p e n g l 的图形操作函数十分基本、灵活。例如o p e n g l 中的模型 绘制过程就多种多样,内容十分丰富,o p e n g l 提供了以下的对三维物体的绘制 方式: 网格线绘图方式( w i r e f r a m e ) 这种方式仅绘制三维物体的网格轮廓线。 深度优先网格线绘图方式( d e p t h _ c u e d ) 用网格线方式绘图,增加模拟人眼看物体一样,远处的物体比近处的物体 要暗些。 反走样网格线绘图方式( a n t i a l i a s e d ) 用网格线方式绘图,绘图时采用反走样技术以减少图形线条的参差不齐。 4 2 安徽大学硕士学位论文 第五章水动画制作过程 平面消隐绘图方式( f l a t s h a d e ) 对模型的隐藏面进行消隐,对模型的平面单元按光照程度进行着色但不进 行光滑处理。 光滑消隐绘图方式( s m o o t h _ s h a d e ) 对模型进行消隐按光照渲染着色的过程中再进行光滑处理,这种方式更接 近于现实。 加阴影和纹理的绘图方式( s h a d o w s 、t e x t u r e s ) 在模型表面贴上纹理甚至于加上光照阴影,使得三维景观像照片一样。 运动模糊的绘图方式( m o t i o n - b l u r e d ) 模拟物体运动时人眼观察所感觉的动感现象。 大气环境效果( a t m o s p h e r e e f f e c t s ) 在三维景观中加入如雾等大气环境效果,使人身临其境 深度域效果( d e p t h - o f - e f f e c t s ) 类似于照相机镜头效果,模型在聚焦点处清晰,反之则模糊。 这些三维物体绘图和特殊效果处理方式,说明0 p e n g l 已经能够模拟比较复 杂的三维物体或自然景观,这就是我们所面对的o p e n g l 。 5 3o p e n g l i 作流程 整个o p e n g l 的基本工作流程如下( 图5 - 1 ) : 安徽大学硕士学位论文 基于浅水方程模型和粒子模型的水动画模拟 其中几何顶点数据包括模型的顶点集、线集、多边形集,这些数据经过流程 图的上部,包括运算器、逐个顶点操作等;图像数据包括象素集、影像集、位图 集等,图像象素数据的处理方式与几何顶点数据的处理方式是不同的,但它们都 经过光栅化、逐个片元( f r a g m e n t ) 处理直至把最后的光栅数据写入帧缓冲器。 在o p e n g l 中的所有数据包括几何顶点数据和象素数据都可以被存储在显示列表 中或者立即可以得到处理。o p e n g l 中,显示列表技术是一项重要的技术。 o p e n g l 要求把所有的几何图形单元都用顶点来描述,这样运算器和逐个顶 点计算操作都可以针对每个顶点进行计算和操作,然后进行光栅化形成图形碎 片;对于象素数据,象素操作结果被存储在纹理组装用的内存中,再像几何顶点 操作一样光栅化形成图形片元。 整个流程操作的最后,图形片元都要进行一系列的逐个片元操作,这样最后 的象素值b z 送入帧缓冲器实现图形的显示。 5 3 1o p e n g l 图形操作步骤 在上一节中说明了o p e n g l 的基本工作流程,根据这个流程可以归纳出在 o p e n g l 中进行主要的图形操作直至在计算机屏幕上渲染绘制出三维图形景观的 基本步骤: 1 ) 根据基本图形单元建立景物模型,并且对所建立的模型进行数学描述 ( o p e n g l 中把;点、线、多边形、图像和位图都作为基本图形单元) 2 ) 把景物模型放在三维空间中的合适的位置,并且设置视点( v i e w p o i n t ) 以观

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论