CN101276480B - 一种生成特定形状烟花的计算机模拟方法 - Google Patents
一种生成特定形状烟花的计算机模拟方法 Download PDFInfo
- Publication number
- CN101276480B CN101276480B CN2008100614154A CN200810061415A CN101276480B CN 101276480 B CN101276480 B CN 101276480B CN 2008100614154 A CN2008100614154 A CN 2008100614154A CN 200810061415 A CN200810061415 A CN 200810061415A CN 101276480 B CN101276480 B CN 101276480B
- Authority
- CN
- China
- Prior art keywords
- particle
- dimensional model
- firework
- simulation
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000005094 computer simulation Methods 0.000 title claims description 8
- 238000004088 simulation Methods 0.000 claims abstract description 25
- 239000002245 particle Substances 0.000 claims description 74
- 230000033001 locomotion Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 claims 1
- 230000015572 biosynthetic process Effects 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000019504 cigarettes Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000010419 fine particle Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 239000003595 mist Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
- 238000010189 synthetic method Methods 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种个性化的生成特定形状烟花的计算机动画模拟方法。用户在客户端输入表示特定形状的三维模型或者三维模型的索引信息,系统在服务器端自动生成从烟花发射升空,到爆炸形成用户指定的三维模型形状,最后消失的计算机动画模拟过程。生成的个性化动画文件可以通过电子邮件或彩信发送到用户端。整个模拟过程采用近似逆向动力学方法,并考虑了空气摩擦力和烟花燃烧后质量的改变,从而使得烟花的形成和下落非常接近真实的物理过程。本发明提供了一种基于互联网的、廉价的、个性化的特定形状烟花动画生成方法,是一种新的数字娱乐解决方案。
Description
技术领域
本发明涉及数字模拟及传输通信技术领域,特别是涉及一种基于互联网的个性化的特定形状烟花动画生成方法。
背景技术
粒子系统是计算机动画技术的一个重要组成部分,参见WilliamT.Reeves.“Particle Systems---A Technique for modeling a class ofFuzzy Objects.”Computer Graphics,17(3):359-376。自然景物中的一部分,如云、烟、雾、水流和火焰等在常规的计算机图像合成方法中是很难实现的。其原因是,这些“模糊”的物体没有明显的平滑的表面,而是不规则的、复杂的、难于描述的物体。对于这些物体,我们对其感兴趣的部分是总体形态和外表的动态和流体变化。粒子系统提供了一种描述这种“模糊”物体的途径。
粒子系统方法的基本思想是将许多简单形状的微小粒子作为基本元素(而不是多边形或面片)聚集起来,形成一个不规则的模糊物体,从而构成一个封闭的系统——粒子系统。它不是一个简单的静态系统,随着时间的推移,系统中不仅已有的粒子不断改变形状,不断运动,而且不断有新的粒子加入,并有旧的粒子消失。这样一个模型可以用来表示一些我们以前常用的基于表面的模型所不能表示的运动、变换、动力学现象等等。为模拟生长和死亡过程,每个粒子被赋予一定的生命周期,它将经历生长,成长,衰老和死亡的过程。同时,为使粒子系统所表示的景物具有良好的随机性,不仅不会对景物进行详细的说明,反而是对与粒子有关的每一个参数使用一个随机过程来控制。
虽然现有的粒子系统方法可以模拟烟花效果,但是不能使得烟花形成特定的形状。
发明内容
本发明提供了一种个性化的生成特定形状烟花的计算机动画模拟方法。在该方法中,用户在客户端输入表示特定形状的三维模型或者三维模型的索引信息,系统在服务器端自动生成从烟花发射升空,到爆炸形成用户指定的特定形状,最后消失的计算机模拟动画。生成的个性化动画文件既可以通过电子邮件发给用户,也可以通过彩信发送到用户的手机上。整个模拟过程采用近似的逆向动力学方法,并考虑了空气摩擦力和烟花燃烧后质量的改变,从而使得烟花的形成和下落过程非常接近真实的物理烟花。
本发明采用的技术方案如下:
一种生成特定形状烟花动画的计算机模拟方法,包括:
(1)在客户端,用户输入表示特定形状的三维模型或者三维模型的索引信息,系统根据输入的信息在模型库中得到表示该特定形状的三维模型,如果模型的顶点数量过少,可使用三角形细分方法对模型进行加密,以满足烟花模拟对模型复杂度要求;
(2)系统根据模型信息和用户设置的初始值,计算出模拟烟花的每个粒子的属性值,用一个发射器模拟烟花升空过程,另一个发射器模拟烟花升空后的第一次爆炸过程;
(3)系统建立多个发射器来模拟第二次爆炸形成,首先根据模型形状对模型进行的空间分割,然后对不同的子空间分别用独立的发射器进行控制,最终生成指定模型形状的视觉效果;
(4)系统保存模拟过程中每一帧,生成动画文件。生成的个性化动画文件既可以通过电子邮件发给用户,也可以通过彩信发送到用户的手机上。
所述的三角形细分方法:如果模型的顶点数量过少,系统将首先计算每个三角形的面积以及平均值,对于面积大于平均值的三角形,对它进行细分。具体方法是取其每条边的中点为顶点,将它们连起来把原三角形分割成四个较小的三角形,完成过程细分。该过程可循环直至顶点数量达到阈值。
所述的模拟烟花的粒子的属性包括位置、运动速度(大小和方向)、生存时间、颜色、颜色变化率(每帧颜色的变化量)、透明度、透明度变化率(每帧透明度的变化量)等属性。粒子系统是动态、随机的系统,粒子的随机属性在其产生时就被确定。可变属性随时间推移,属性的值不断变化。
程序将在三维空间中生成几个粒子发射器,这些发射器会发射出能够产生不同颜色不同运动状态的粒子。一个发射器生成上升到天空中的粒子;另一个发射器生成第一次爆炸所需要的粒子;第二次爆炸则需要多个发射器。每个发射器都控制着每一帧中产生的粒子的平均数量和其产生的粒子的总数量。发射器还控制着其发射的粒子的一些属性,如初始位置、初始速度、初始和最终的颜色、生存时间等。
一个新的粒子产生以后,将根据其所属的发射器来确定其属性。发射器的初始位置及粒子的运动速度和方向将决定烟花的基本形状。将所有粒子都设置为速度很快且方向向上就可以模拟烟花升空的过程。烟花第一次爆炸时的模拟需要将粒子设置为以发射器为中心向外部移动,从而形成大致球形的烟花。第二次爆炸需要两步来完成。首先要找出系统中处理过的三维模型的顶点一一对应的那些粒子,设置其随时间变化移动到模型的顶点上,其次同时要在系统中加入一些随机粒子来增加模拟过程的真实感。
本发明所公开的方法可以让用户可以方便、廉价、精确地控制烟花生成的形状。用户在客户端输入表示特定形状的三维模型或者三维模型的索引信息,系统在服务器端自动生成从烟花发射升空,到爆炸形成用户指定的特定形状,最后消失的计算机动画模拟过程。整个模拟过程采用近似的逆向动力学方法,并考虑了空气摩擦力和烟花燃烧后质量的改变,从而使得烟花的形成和下落过程非常接近真实的物理烟花。
本发明提供了一种基于互联网的、廉价的、个性化的特定形状烟花动画生成方法,是一种新的数字娱乐解决方案和手机短消息增值服务。
具体实施方式
一种生成特定形状烟花的计算机模拟方法:用户在客户端输入表示特定形状的三维模型或者三维模型的索引信息,系统的服务器端用逆向动力学进行形状约束的烟花模拟,实时生成特定形状的个性化烟花,生成的个性化动画文件既可以通过电子邮件发给用户,也可以通过彩信发送到用户的手机上。
具体流程参见图1。用户在客户端输入的索引信息可以是姓名(例如,“张三”)、生日(例如,“1990年10月1日”、特定的文字(例如,“我爱你”、“生日快乐”、“Merry Christmas”、“HappyBirthday”)或者表示某一特定形状的三维模型文件(例如,OBJ格式、3DS格式、PLY格式、STL格式、IGES格式、WRL格式、DXF格式等)。
1.如果输入文件中模型的顶点数量过少,以致它的密度不足以维持所需要的模型形态。程序会首先计算每个三角形的面积大小以及平均值。对于面积大于平均值的三角形,对它进行细分,具体方法是取它的每边中点作为顶点,将它们连起来做分割线把三角形划分成四个较小的三角形,如图2所示。这样就完成了一次细分,重复上述过程直至顶点的数量达到阀值或已满足视觉要求。
2.对于形状受约束的烟花粒子的属性会随关键帧而变化。粒子系统是动态、随机的系统,粒子的随机属性在其产生时就被确定。之后,系统中所有的粒子将在三维空间中运动,更新其属性,到最后消失。
(1).粒子的生存周期可用如下方式初始化:
lifeIni=MeanLife+Rand()*VarLife (3)
其中MeanLife和VarLife参数由产生粒子的发射器决定。发射器的属性不仅决定其产生的粒子的初始及最终颜色,而且决定这些粒子在其生存周期内颜色的变化范围。若想要颜色随关键帧均匀变化,可采用如下的方式:
deltColor=(finalColor-initialColor)/LifeIni (4)
其中finalColor和initialColor是粒子的初始及最终颜色值,LifeIni是以帧数计算的粒子生存周期,deltColor是颜色值每一帧的变化率。
(2).本发明中用粒子透明度来控制粒子的亮度。为了避免第一次爆炸中的粒子的亮度太亮导致,爆炸中心附近过于亮而显为白色,本发明在粒子的生存周期中设置一个关键点,并令粒子在该点有最大透明度。如下式所述:
keyPosition=0.5*lifeIni
deltAlpha1=(MaxAlpha-iniAlpha)/keyPosition
deltAlpha2=(finalAlpha-MaxAlpha)/(lifeIni-keyPosition)
其中iniAlpha和finalAlpha分别是初始和最终透明度,在本发明中它们的值都很小MaxAlpha是最大透明度,keyPosition是粒子生存周期中取最大透明度的时刻,lifeIni是粒子的初始生存周期。粒子在其生存周期的中间时刻达到最大亮度。在粒子的整个生存周期中按照如下方式更新粒子的透明度:
if(life>(lifeIni-KeyPosition))
particelAlpha=particleAlpha+deltaAlphal;
else
particelAlpha=particelAlpha+deltaAlpha2;
其中life是粒子的剩余生命值,初始生命值lifeIni将逐渐减少为0。烟花在第二次爆炸中产生两种粒子。随机粒子的透明度变化过程如上面所述。受控的那些粒子的初始和最终透明度值也一样很小但当他们到达模型上对应的位置时,令其取最大透明度值。
(3).受控的那些粒子在到模型上的某一点时,其生命值life降为0,但为了让成形的烟花维持一段时间,需要将这些粒子的生命值重新设置为原初始值lifeIni。这样就可以看到成形的烟花因重力的作用在空中慢慢下落并消失的情景。为了添加烟花闪烁效果,可以在粒子到达模型上某一顶点时,交替的将透明度值设置为一半或当前值(交替间隔为5帧左右)。
3.实现形状控制的方法如下:一个新的粒子产生以后,将根据其所属的发射器来确定其属性。发射器的初始位置及粒子的移动速度和方向将决定烟花的基本形状。将所有粒子都设置为速度很快且方向向上就可以模拟步骤(3)中烟花升空的过程。
烟花第一次爆炸时的模拟需要将粒子设置为以发射器为中心向外部移动,从而形成大致球形的烟花。粒子的速度可由下面式子计算得到:
speed=MeanSpeed+rand()*VarSpeed
其中rand()产生[-1.0,1.0]的随机数,MeanSpeed和VarSpeed都是产生粒子的发射器所决定的平均速度和可变速度。为形成大致球形的烟花,粒子的初始方向可由θ(粒子初始方向和XY面的夹角)和(粒子初始方向和Z轴的夹角)两个角度参数来控制。通过下面的计算可以得到速度的方向矢量:
θ=(rand()+1.0)*π
directionx,directiony,directionz分别为速度方向单位矢量的x,y,z三个分量。易知θ均匀分布于圆上,而均匀分布于半圆上。这样第一次爆炸中的粒子将大致均匀的分布于以发射器为中心的球面上。
第二次爆炸需要使一些粒子移动到已处理过的三维模型的顶点上。由于重力的影响,系统中的粒子轨迹均为抛物线。已知粒子的初始位置(由发射器决定)和最终位置(三维模型上的一个顶点),可以计算出重力影响下的初始移动方向;其中x与z两个分量是匀速直线运动,y分量是匀变速运动。设objVertex是粒子所要到达的顶点位置,iniPosition为粒子的初始位置,lifeIni为以帧数计算的粒子初始生存时间,则下面的给出了该粒子的初始方向的计算方法:
s=objVertex-iniPosition;
directionx=s.x/lifeIni;
directiony=(s·y-0.5*forcey*lifeIni*LifeIni)/lifeIni;
directionz=s.z/lifeIni;
将模型分割可沿坐标轴将其包围盒分割。具体方法是:计算包围盒的长宽高,将最长的边从中间分为2段,得到两个子包围盒,对每个子包围盒重复操作3次,这样给出的模型也被分为8个部分;每个包围盒的中心放置发射器,其发射的粒子按照上述方法移动到模型每个部分的对应顶点上。可见第二次爆炸需要两步来完成。首先要找出与模型上顶点一一对应的那些粒子,令其随时间变化移动到模型的顶点上,其次同时要在系统中加入一些随机粒子来增加场景的真实感。
Claims (3)
1.一种生成特定形状烟花动画的计算机模拟方法,包括:
(1)在客户端,用户输入表示特定形状的三维模型或者三维模型的索引信息,系统根据输入的信息在模型库中得到表示该特定形状的三维模型;
(2)系统根据模型信息和用户设置的初始值,计算出模拟烟花的粒子的属性值;若三维模型顶点数量过少时,系统自动对模型进行细分优化,首先计算每个三角形的面积以及平均值,对于面积大于平均值的三角形,取其每条边的中点为顶点,将它们连起来把原三角形分割成四个较小的三角形,完成过程细分,该过程可循环直至顶点数量达到阈值;
建立一个发射器模拟烟花升空过程,另一个发射器模拟烟花升空后的第一次爆炸过程;第一次爆炸过程为:将粒子设置为以发射器为中心向外部移动,从而形成大致球形的烟花;
(3)系统建立多个发射器来模拟第二次爆炸生成并形成特定形状的视觉效果;第二次爆炸需要两步来完成:首先要找出系统中处理过的三维模型的顶点一一对应的那些粒子,设置其随时间变化移动到模型的顶点上,其次同时要在系统中加入一些随机粒子来增加模拟过程的真实感;
(4)系统保存模拟过程中每一帧,生成特定形状烟花的动画视频文件,通过电子邮件或彩信发送给用户。
2.根据权利要求1所述的计算机模拟方法,其特征在于:所述的该特定形状的三维模型通过粒子的密度和变换率,体现模型所表示物体的形状特征细节。
3.根据权利要求1所述的计算机模拟方法,其特征在于:所述的模拟烟花的粒子的属性包括位置、运动速度、生存时间、颜色、颜色变化率、透明度、透明度变化率,系统根据需要调节并符合真实的物理模拟过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100614154A CN101276480B (zh) | 2008-04-28 | 2008-04-28 | 一种生成特定形状烟花的计算机模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100614154A CN101276480B (zh) | 2008-04-28 | 2008-04-28 | 一种生成特定形状烟花的计算机模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101276480A CN101276480A (zh) | 2008-10-01 |
CN101276480B true CN101276480B (zh) | 2011-12-14 |
Family
ID=39995891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100614154A Expired - Fee Related CN101276480B (zh) | 2008-04-28 | 2008-04-28 | 一种生成特定形状烟花的计算机模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101276480B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147928B (zh) * | 2011-03-16 | 2012-11-21 | 美通日用品(杭州)有限公司 | 一种基于粒子系统的火焰模拟加速改进算法 |
CN103116899B (zh) * | 2013-02-01 | 2015-11-18 | 拓维信息系统股份有限公司 | 一种基于礼花效果模拟的手机背景图像创作方法 |
CN104156995A (zh) * | 2014-07-16 | 2014-11-19 | 浙江大学 | 一种针对敦煌飞天形象的飘带动画制作方法 |
CN104463936B (zh) * | 2014-11-28 | 2018-07-06 | 北京交通大学 | 一种基于虚拟现实的室内爆炸仿真方法 |
CN106303153B (zh) * | 2015-05-29 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种图像处理方法及装置 |
CN108088315A (zh) * | 2017-12-22 | 2018-05-29 | 鲁佰战 | 一种智能烟花燃放系统 |
CN111145358B (zh) * | 2018-11-02 | 2024-02-23 | 北京微播视界科技有限公司 | 图像处理方法、装置、硬件装置 |
CN109993836B (zh) * | 2019-03-18 | 2020-11-17 | 浙江大学 | 一种实现虚拟现实三维烟花形状可控的方法 |
CN109871663A (zh) * | 2019-04-08 | 2019-06-11 | 北京理工大学 | 基于游戏引擎的烟火特效仿真系统 |
CN110163982B (zh) * | 2019-04-11 | 2021-04-27 | 浙江大学 | 一种基于草图检索且形状可控的沉浸式虚拟烟花模拟方法 |
-
2008
- 2008-04-28 CN CN2008100614154A patent/CN101276480B/zh not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
丁纪云, 陈利平,李思昆.基于OpenGL的烟花动态模拟方法的研究与实现.计算机工程28 4.2002,28(4),240-241,275. |
丁纪云, 陈利平,李思昆.基于OpenGL的烟花动态模拟方法的研究与实现.计算机工程28 4.2002,28(4),240-241,275. * |
尹星云 胡长俊.基于OpenGL的烟花粒子系统设计.电脑开发与应用19 7.2006,19(7),28-30. |
尹星云 胡长俊.基于OpenGL的烟花粒子系统设计.电脑开发与应用19 7.2006,19(7),28-30. * |
Also Published As
Publication number | Publication date |
---|---|
CN101276480A (zh) | 2008-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101276480B (zh) | 一种生成特定形状烟花的计算机模拟方法 | |
CN102243770B (zh) | 一种基于osg的虚拟海战场真实感图形快速绘制方法 | |
CN112915542B (zh) | 一种碰撞数据处理方法、装置、计算机设备及存储介质 | |
WO2020034863A1 (zh) | 一种显示方法以及虚拟现实设备 | |
CN109993836B (zh) | 一种实现虚拟现实三维烟花形状可控的方法 | |
CN101344969A (zh) | 一种生成群组动画的模糊控制方法 | |
Chen et al. | Shape‐constrained flying insects animation | |
CN110400366A (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN110163982B (zh) | 一种基于草图检索且形状可控的沉浸式虚拟烟花模拟方法 | |
CN107204026A (zh) | 一种用于显示动画的方法和装置 | |
CN108921920B (zh) | 一种水电工程三维动画的制作方法 | |
CN106293565B (zh) | 一种基于粒子运动模型的模拟显示方法及装置 | |
CN109712245B (zh) | 三维场景中蝴蝶行为的模拟方法及装置 | |
Dong et al. | Firework simulation based on particle system in virtual scene | |
KR101267571B1 (ko) | 자연 식물의 애니메이션 표시방법 | |
Lu et al. | Design and implementation of three-dimensional game engine | |
Zhang | Computer Technology-Based Three-Dimensional Animation Production System Management | |
Candussi et al. | Rendering Realistic Trees and Forests in Real Time. | |
Chen et al. | The merging of water droplets base-on metaball | |
Cui et al. | Sketch‐based shape‐constrained fireworks simulation in head‐mounted virtual reality | |
KR20130073523A (ko) | 사실적인 실시간 모델링 시스템 및 방법 | |
CN107680162A (zh) | 一种基于Unity的VR可交互电线生成方法 | |
Do et al. | A semi-automatic generation method for visually-plausible virtual clouds | |
Fadel et al. | Support structure visualization in a virtual reality environment | |
Avramescu | Special effects used in creating 3D animated scenes-part 1 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111214 Termination date: 20140428 |