一种生成特定形状烟花的计算机模拟方法

文档序号:6460458阅读:277来源:国知局
专利名称:一种生成特定形状烟花的计算机模拟方法
技术领域
本发明涉及数字模拟及传输通信技术领域,特别是涉及一种基于 互联网的个性化的特定形状烟花动画生成方法。
背景技术
粒子系统是计算机动画技术的一个重要组成部分,参见William T. Reeves. "Particle Systems — A Technique for modeling a class of Fuzzy Objects." Computer Graphics, 17(3): 359-376。自然景物中的一部 分,如云、烟、雾、水流和火焰等在常规的计算机图像合成方法中是 很难实现的。其原因是,这些"模糊"的物体没有明显的平滑的表面, 而是不规则的、复杂的、难于描述的物体。对于这些物体,我们对其 感兴趣的部分是总体形态和外表的动态和流体变化。粒子系统提供了 一种描述这种"模糊"物体的途径。粒子系统方法的基本思想是将许多简单形状的微小粒子作为基 本元素(而不是多边形或面片)聚集起来,形成一个不规则的模糊物 体,从而构成一个封闭的系统——粒子系统。它不是一个简单的静态 系统,随着时间的推移,系统中不仅已有的粒子不断改变形状,不断 运动,而且不断有新的粒子加入,并有旧的粒子消失。这样一个模型 可以用来表示一些我们以前常用的基于表面的模型所不能表示的运 动、变换、动力学现象等等。为模拟生长和死亡过程,每个粒子被赋 予一定的生命周期,它将经历生长,成长,衰老和死亡的过程。同时, 为使粒子系统所表示的景物具有良好的随机性,不仅不会对景物进行 详细的说明,反而是对与粒子有关的每一个参数使用一个随机过程来 控制。虽然现有的粒子系统方法可以模拟烟花效果,但是不能使得烟 花形成特定的形状。发明内容本发明提供了一种个性化的生成特定形状烟花的计算机动画模 拟方法。在该方法中,用户在客户端输入表示特定形状的三维模型或 者三维模型的索引信息,系统在服务器端自动生成从烟花发射升空, 到爆炸形成用户指定的特定形状,最后消失的计算机模拟动画。生成 的个性化动画文件既可以通过电子邮件发给用户,也可以通过彩信发 送到用户的手机上。整个模拟过程采用近似的逆向动力学方法,并考 虑了空气摩擦力和烟花燃烧后质量的改变,从而使得烟花的形成和下 落过程非常接近真实的物理烟花。本发明采用的技术方案如下一种生成特定形状烟花动画的计算机模拟方法,包括(1) 在客户端,用户输入表示特定形状的三维模型或者三维模型 的索引信息,系统根据输入的信息在模型库中得到表示该特定形状的 三维模型,如果模型的顶点数量过少,可使用三角形细分方法对模型 进行加密,以满足烟花模拟对模型复杂度要求;(2) 系统根据模型信息和用户设置的初始值,计算出模拟烟花的 每个粒子的属性值,用一个发射器模拟烟花升空过程,另一个发射器 模拟烟花升空后的第一次爆炸过程;(3) 系统建立多个发射器来模拟第二次爆炸形成,首先根据模型 形状对模型进行的空间分割,然后对不同的子空间分别用独立的发射 器进行控制,最终生成指定模型形状的视觉效果;(4) 系统保存模拟过程中每一帧,生成动画文件。生成的个性化 动画文件既可以通过电子邮件发给用户,也可以通过彩信发送到用户 的手机上。所述的三角形细分方法如果模型的顶点数量过少,系统将首先 计算每个三角形的面积以及平均值,对于面积大于平均值的三角形, 对它进行细分。具体方法是取其每条边的中点为顶点,将它们连起来 把原三角形分割成四个较小的三角形,完成过程细分。该过程可循环 直至顶点数量达到阈值。所述的模拟烟花的粒子的属性包括位置、运动速度(大小和方 向)、生存时间、颜色、颜色变化率(每帧颜色的变化量)、透明度、透明度变化率(每帧透明度的变化量)等属性。粒子系统是动态、随机的 系统,粒子的随机属性在其产生时就被确定。可变属性随时间推移, 属性的值不断变化。程序将在三维空间中生成几个粒子发射器,这些发射器会发射出 能够产生不同颜色不同运动状态的粒子。 一个发射器生成上升到天空中的粒子;另一个发射器生成第一次爆炸所需要的粒子;第二次爆炸 则需要多个发射器。每个发射器都控制着每一帧中产生的粒子的平均 数量和其产生的粒子的总数量。发射器还控制着其发射的粒子的一些 属性,如初始位置、初始速度、初始和最终的颜色、生存时间等。一个新的粒子产生以后,将根据其所属的发射器来确定其属性。 发射器的初始位置及粒子的运动速度和方向将决定烟花的基本形状。 将所有粒子都设置为速度很快且方向向上就可以模拟烟花升空的过 程。烟花第一次爆炸时的模拟需要将粒子设置为以发射器为中心向外 部移动,从而形成大致球形的烟花。第二次爆炸需要两步来完成。首 先要找出系统中处理过的三维模型的顶点一一对应的那些粒子,设置 其随时间变化移动到模型的顶点上,其次同时要在系统中加入一些随 机粒子来增加模拟过程的真实感。本发明所公开的方法可以让用户可以方便、廉价、精确地控制 烟花生成的形状。用户在客户端输入表示特定形状的三维模型或者三 维模型的索引信息,系统在服务器端自动生成从烟花发射升空,到爆 炸形成用户指定的特定形状,最后消失的计算机动画模拟过程。整个 模拟过程采用近似的逆向动力学方法,并考虑了空气摩擦力和烟花燃 烧后质量的改变,从而使得烟花的形成和下落过程非常接近真实的物 理烟花。本发明提供了一种基于互联网的、廉价的、个性化的特定形状烟 花动画生成方法,是一种新的数字娱乐解决方案和手机短消息增值服 务。
具体实施方式
一种生成特定形状烟花的计算机模拟方法用户在客户端输入 表示特定形状的三维模型或者三维模型的索引信息,系统的服务器端用逆向动力学进行形状约束的烟花模拟,实时生成特定形状的个性化 烟花,生成的个性化动画文件既可以通过电子邮件发给用户,也可以 通过彩信发送到用户的手机上。具体流程参见

图1。用户在客户端输入的索引信息可以是姓名(例如,"张三")、生日(例如,"1990年10月1日"、特定的文字 (例如,"我爱你"、"生日快乐"、"Merry Christmas" 、 "Happy Birthday")或者表示某一特定形状的三维模型文件(例如,OBJ格式、 3DS格式、PLY格式、STL格式、IGES格式、WRL格式、DXF格式等)。1. 如果输入文件中模型的顶点数量过少,以致它的密度不足以维 持所需要的模型形态。程序会首先计算每个三角形的面积大小以及平 均值。对于面积大于平均值的三角形,对它进行细分,具体方法是取 它的每边中点作为顶点,将它们连起来做分割线把三角形划分成四个 较小的三角形,如图2所示。这样就完成了一次细分,重复上述过程 直至顶点的数量达到阀值或己满足视觉要求。2. 对于形状受约束的烟花粒子的属性会随关键帧而变化。粒子系 统是动态、随机的系统,粒子的随机属性在其产生时就被确定。之后, 系统中所有的粒子将在三维空间中运动,更新其属性,到最后消失。(1).粒子的生存周期可用如下方式初始化其中M^wZ^e和Fbr丄^参数由产生粒子的发射器决定。发射器的属性 不仅决定其产生的粒子的初始及最终颜色,而且决定这些粒子在其生 存周期内颜色的变化范围。若想要颜色随关键帧均匀变化,可采用如 下的方式fife/fCo/or=(/ wa/Co/or — /mY/a/Co/w)/Z^/m' (4) 其中,"a/Cb/or和/"衍a/Co/or是粒子的初始及最终颜色值,h/e/m'是 以帧数计算的粒子生存周期,^/fCo/w是颜色值每一帧的变化率。(2).本发明中用粒子透明度来控制粒子的亮度。为了避免第一次爆 炸中的粒子的亮度太亮导致,爆炸中心附近过于亮而显为白色,本发 明在粒子的生存周期中设置一个关键点,并令粒子在该点有最大透明 度。如下式所述其中/""/p/w和力""L4/p;w分别是初始和最终透明度,在本发明中它们的值都很小Mo^/; ^是最大透明度,fey户(W衍o"是粒子生存周期中取最大透明度的时刻,/,/e/"z是粒子的初始生存周期。粒子在其生存周期的中间时刻达到最大亮度。在粒子的整个生存周期中按照如下方式更新粒子的透明度-z/ (騰 > (騰7m' — A^尸ow'/z'ow))其中是粒子的剩余生命值,初始生命值/z>/m'将逐渐减少为0。 烟花在第二次爆炸中产生两种粒子。随机粒子的透明度变化过程如上 面所述。受控的那些粒子的初始和最终透明度值也一样很小但当他们 到达模型上对应的位置时,令其取最大透明度值。(3).受控的那些粒子在到模型上的某一点时,其生命值/^降为0, 但为了让成形的烟花维持一段时间,需要将这些粒子的生命值重新设 置为原初始值/^/"/。这样就可以看到成形的烟花因重力的作用在空 中慢慢下落并消失的情景。为了添加烟花闪烁效果,可以在粒子到达 模型上某一顶点时,交替的将透明度值设置为一半或当前值(交替间 隔为5帧左右)。3.实现形状控制的方法如下 一个新的粒子产生以后,将根据 其所属的发射器来确定其属性。发射器的初始位置及粒子的移动速度 和方向将决定烟花的基本形状。将所有粒子都设置为速度很快且方向 向上就可以模拟步骤(3)中烟花升空的过程。烟花第一次爆炸时的模拟需要将粒子设置为以发射器为中心向外 部移动,从而形成大致球形的烟花。粒子的速度可由下面式子计算得 到其中raw《)产生[-1.0,1.0]的随机数,A^朋5^W和K"Wpe^/都是产生粒 子的发射器所决定的平均速度和可变速度。为形成大致球形的烟花, 粒子的初始方向可由0(粒子初始方向和X7平面的夹角)和p (粒子初始 方向和效由的夹角)两个角度参数来控制。通过下面的计算可以得到速 度的方向矢量p 二 (腦《)+1.0)*0.5*冗^ ecriowx = cos(P) * sin (伊)^gWo"y = sin(6) * sin (p)^VeWo"z = cos (p) <i/rec"o x, d/recriow少,dzVecrio"z分另lJ为速度方向单位矢量的x, 乂 z三个 分量。易知0均匀分布于圆上,而p均匀分布于半圆上。这样第一次爆 炸中的粒子将大致均匀的分布于以发射器为中心的球面上。第二次爆炸需要使一些粒子移动到已处理过的三维模型的顶点 上。由于重力的影响,系统中的粒子轨迹均为抛物线。已知粒子的初 始位置(由发射器决定)和最终位置(三维模型上的一个顶点),可 以计算出重力影响下的初始移动方向;其中x与z两个分量是匀速直线 运动,^分量是匀变速运动。设o^7wfex是粒子所要到达的顶点位置, /"/i^衍ow为粒子的初始位置,/z/e/m'为以帧数计算的粒子初始生存时 间,则下面的给出了该粒子的初始方向的计算方法WreWowy = (s.y - 0.5 *_/b re_y *映/m' * Zjyfe/m〕 /;将模型分割可沿坐标轴将其包围盒分割。具体方法是计算包围盒的 长宽高,将最长的边从中间分为2段,得到两个子包围盒,对每个子 包围盒重复操作3次,这样给出的模型也被分为8个部分;每个包围 盒的中心放置发射器,其发射的粒子按照上述方法移动到模型每个部 分的对应顶点上。可见第二次爆炸需要两步来完成。首先要找出与模 型上顶点一一对应的那些粒子,令其随时间变化移动到模型的顶点 上,其次同时要在系统中加入一些随机粒子来增加场景的真实感。
权利要求
1. 一种生成特定形状烟花动画的计算机模拟方法,包括(1)在客户端,用户输入表示特定形状的三维模型或者三维模型的索引信息,系统根据输入的信息在模型库中得到表示该特定形状的三维模型;(2)系统根据模型信息和用户设置的初始值,计算出模拟烟花的粒子的属性值,建立一个发射器模拟烟花升空过程,另一个发射器模拟烟花升空后的第一次爆炸过程;(3)系统建立多个发射器来模拟第二次爆炸生成并形成特定形状的视觉效果;(4)系统保存模拟过程中每一帧,生成特定形状烟花的动画视频文件,通过电子邮件或彩信发送给用户。
2. 根据权利要求1所述的计算机模拟方法,其特征在于所述的 三维模型顶点数量过少时,系统自动对模型进行细分优化,首先计算 每个三角形的面积以及平均值,对于面积大于平均值的三角形,取其 每条边的中点为顶点,将它们连起来把原三角形分割成四个较小的三 角形,完成过程细分,该过程可循环直至顶点数量达到阈值。
3. 根据权利要求1所述的计算机模拟方法,其特征在于所述的 该特定形状的三维模型通过粒子的密度和变换率,体现模型所表示物 体的形状特征细节。
4. 根据权利要求1所述的计算机模拟方法,其特征在于所述的 模拟烟花的粒子的属性包括位置、运动速度、生存时间、颜色、颜色 变化率、透明度、透明度变化率,系统根据需要调节并符合真实的物 理模拟过程。
5. 根据权利要求1所述的计算机模拟方法,其特征在于所述的 发射器模拟烟花升空后的第一次爆炸过程为将粒子设置为以发射器 为中心向外部移动,从而形成大致球形的烟花。
6. 根据权利要求1所述的计算机模拟方法,其特征在于所述的 多个发射器来模拟第二次爆炸需要两步来完成首先要找出系统中处 理过的三维模型的顶点一一对应的那些粒子,设置其随时间变化移动到模型的顶点上,其次同时要在系统中加入一些随机粒子来增加模拟 过程的真实感。
全文摘要
本发明公开了一种个性化的生成特定形状烟花的计算机动画模拟方法。用户在客户端输入表示特定形状的三维模型或者三维模型的索引信息,系统在服务器端自动生成从烟花发射升空,到爆炸形成用户指定的三维模型形状,最后消失的计算机动画模拟过程。生成的个性化动画文件可以通过电子邮件或彩信发送到用户端。整个模拟过程采用近似逆向动力学方法,并考虑了空气摩擦力和烟花燃烧后质量的改变,从而使得烟花的形成和下落非常接近真实的物理过程。本发明提供了一种基于互联网的、廉价的、个性化的特定形状烟花动画生成方法,是一种新的数字娱乐解决方案。
文档编号G06T17/00GK101276480SQ20081006141
公开日2008年10月1日 申请日期2008年4月28日 优先权日2008年4月28日
发明者雁 周, 孟瑜炜, 振 岳, 金小刚 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1