CN105303601A - 一种基于粒子系统的喷泉模拟实现方法 - Google Patents
一种基于粒子系统的喷泉模拟实现方法 Download PDFInfo
- Publication number
- CN105303601A CN105303601A CN201510606628.0A CN201510606628A CN105303601A CN 105303601 A CN105303601 A CN 105303601A CN 201510606628 A CN201510606628 A CN 201510606628A CN 105303601 A CN105303601 A CN 105303601A
- Authority
- CN
- China
- Prior art keywords
- fountain
- water
- particle
- formula
- water surface
- 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.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于粒子系统的喷泉模拟实现。现有的喷泉模型一般用在设计现实生活的喷泉或作为研究使用,用物理模型制作,特点是效果逼真,缺乏实时性。用粒子系统制作,往往只是研究粒子的运动,缺乏真实感。因此,本发明设计一个通用性的喷泉模型,保证一定程度的真实感,同时具有很好的实时性。本发明采用设置发生事件的方式描述喷泉喷水下落后的运动过程。在粒子与水面发生碰撞产生水波纹效果上,优化水波纹原理的计算及利用计算得到的水波纹采用合适数量的纹理贴图实现水波纹效果。本发明不仅具有喷泉外观模型,也有动态喷水模拟,加入了风力、阻力等环境影响因素,能够满足通用性喷泉模拟的要求。
Description
技术领域
本发明属于图像处理领域中的虚拟真实感绘制技术,涉及一种基于粒子系统的喷泉模拟实现方法。
背景技术
随着计算机软件技术的高速发展,计算机功能多样化满足人们的各种需求,也开始更加注重画面美观、视觉真实感的需求,计算机图形学与虚拟现实技术研究得到发展与应用。通过计算机技术,还原生活中的各种景象或创造科幻事物和场景,比如动漫、3D游戏、模型设计展示、仿真模拟、影视广告等等。动态景物是自然场景中非常重要而又普遍存在的组成部分,如流动的水,瀑布、浮动的云、绽放的烟花等等。这些自然场景往往复杂,既有规律性又有随机性,很难用常规模型和方法实现。研究人员也开发出一套基于物理模型的模拟方法,通过建立N—S方程的方法可以较好的对一些流体特征如水流,海面波浪进行模拟。这种物理模型的优点是效果逼真,但缺点是建立模型非常复杂,计算量庞大,实时性差。不过随着GPU加速技术的发展,代替原来以CPU为主的物理建模运算,基于物理的仿真建模得到了发展。
另一种方法则是粒子系统模拟。该方法是由W.T.Reeves等在1983年首次研究提出。特别适合用于不规则模型或动态场景的模拟。以喷泉为例,无论是自然界中自然存在的喷泉还是人工建造的观赏性喷泉,喷泉景观以其独特的风格为城市、园林的美化起到了画龙点睛的作用,成为一项极具魅力的景观。虚拟喷泉可视化也是虚拟动态景物研究、构建虚拟自然场景的重要组成部分。从视觉感官上,喷泉通常可以看作由喷口喷出若干个错落有致的水柱,然后这些水柱完成上升下落的抛物线运动过程。可以看出喷泉的外在形态并不是某种固定的几何图形,同时在运动过程中很自然地会受到风力、空气阻力或其它外在条件的影响,整个运动模式也具有不确定性。因此,怎样描述喷泉这一类景象的外在形态与运动形式是虚拟场景可视化中一项复杂而又困难的工作。
人们制作喷泉模型一般用在设计现实生活的喷泉或作为研究使用,用物理模型制作,特点是效果逼真,缺乏实时性。用粒子系统制作,往往只是研究粒子的运动,缺乏真实感。因此设计一个通用性的喷泉模型是非常必要的,保证一定程度的真实感,同时具有很好的实时性。
发明内容
本发明针对现有技术的不足,提供了一种基于粒子系统的喷泉模拟实现。确保真实感和实时性下,在建模的复杂程度、水波纹的计算量和实时性上做了优化改进。具体技术方案如下:
一种基于粒子系统的喷泉模拟实现方法,其特征在于:该方法包括以下步骤:
步骤(1).绘制UV曲线,构建喷泉模型;
步骤(2).采用粒子系统的动态更新过程描述喷泉水流从喷口喷出直至落下产生水波纹的整个运动过程;
步骤(3).采用纹理映射的方法对水粒子进行绘制;
步骤(4).制作柔体水面;
步骤(5).制作水波纹特效,实现水滴与水面碰撞后的水波纹效果;
步骤(6).灯光设定;
步骤(7).渲染。
进一步的,步骤(2)中粒子系统的动态更新过程具体为:
第一、创建粒子发射器,选择发射器类型,设置发射速率、方向属性、粒子发射速率、随机速率;
第二、为粒子设置渲染属性,选择多条纹渲染类型,并添加动态属性,包括透明度、颜色;根据实际情况,为粒子添加重力场、风力、摩擦力;
第三、对粒子与柔体水面碰撞分析,结合粒子系统建模特性,采用旧粒子碰撞消亡生成新粒子的发生事件,并对新粒子设置合适阻尼和继承速度;当碰撞时,产生水波纹。
进一步的,步骤(4)具体为:通过曲面建模生成平面,布材质给平面,对平面的凹凸贴图进行纹理贴图。
进一步的,步骤(5)具体为:第一、根据水波纹原理和喷泉模型建模需求,优化计算方法;
第二、制作水波纹贴图和重力贴图。
进一步的,优化水波纹原理计算公式,其具体方法如下:
首先,设置振源和振源的位置,计算每个粒子下落碰撞到水面的速度、位置和波能;
计算粒子位置与速度:
(2)
(3)
式中W表示位置,表示加速度,表示速度;
计算一个粒子的动能,通过水波纹贴图,完成水波纹效果:
首先,建立两个与柔体水面一样大小的数组Wf1[Width*PoolHeight]和Wf2[Width*Height](Width=柔体水面的象素宽度、Height=柔体水面的象素高度),用来保存柔体水面上的每一个点前一时刻和后一时刻的波幅数据;
推导计算波幅的公式:
假设一次公式为:
(4)
式中a、b为待定系数,为0点下一时刻的振幅;、、、、为当前时刻的振幅;假设水的摩擦力为0,得到以下公式:
(5)
将每个点用公式(4)计算,然后代入上式,得到:
(6)
即
找出一个最简解:a=1/2、b=-1;最后得到的公式就是:
(7)
考虑水存在阻尼的,对波幅数据进行衰减处理,让每一个点在经过一次计算后,波幅都比理想值按一定的比例降低。
本发明的有益效果:
(1)针对实际生活的喷泉结构分析,提出一套UV曲线建模方案,使建模过程快捷、简单,运算复杂度降低。
(2)利用纹理贴图的方法实现水波纹的涟漪效果,大大省去水滴与水面碰撞的复杂计算处理,并且很好的继承了真实感效果。
(3)对水粒子绘制采用线型条纹映射,对比真实水滴贴图或元球,在保证效果逼真的前提下,提高了运算速度。
附图说明
图1为本发明的主流程图;
图2为本发明中步骤(2)的流程图。
具体实施方式
以下结合附图对本发明作进一步说明。
如图1所示,本发明方法包括以下步骤:
步骤(1).绘制UV曲线,生成喷泉模型。
步骤(2).采用粒子系统描述喷泉水流运动过程,具体步骤如下:
第一,创建粒子发射器,选择发射器类型,设置发射速率、方向属性、粒子发射速率、随机速率。
第二,为粒子设置渲染属性,选择多条纹渲染类型,并添加动态属性,包括透明度、颜色。根据实际情况,为粒子添加重力场、风力、摩擦力。
第三,对粒子与柔体水面碰撞分析,结合粒子系统建模特性,采用旧粒子碰撞消亡生成新粒子的发生事件,并对新粒子设置合适阻尼和继承速度。当碰撞时,产生水波纹。
步骤(3).对粒子进行纹理映射技术。
步骤(4).制作柔体水面。通过曲面建模生成平面,布材质给平面,对平面的凹凸贴图进行纹理贴图。
步骤(5).制作水波纹特效。
第一,根据水波纹原理和喷泉模型建模需求,优化计算方法。
第二,制作水波纹贴图和重力贴图。
首先根据其原理获取5张水波纹贴图,作为一个周期,来模拟水滴下落碰到水面所产生的涟漪效果。
其次,绘制一个重力贴图控制上下震动(置换贴图)的幅度。离震源越近,振幅越大。这里也可用渐变贴图来实现,设置输入参数为指向对象。第三,制作水波纹的置换贴图,为其添加一个渐变贴图,将混合模式设置为透明度,输入参数设为权重贴图,权重贴图选项中选择我们做好的重力贴图。添加一个包裹,水面平静值为100%,水面运动值为0%。
步骤(6).使用两盏灯光进行照明。分别是用作照亮场景的平行光灯,用于产生高光效果的聚光灯。
步骤(7).为达到理想画面效果,选择高动态范围图像渲染方式,选择纹理环境,添加一个渐变纹理。打开渲染面板中的光线追踪功能选项,进行渲染出图。
步骤(2)中粒子更新并碰撞产生水波纹过程,具体方法如下所述,流程图见2所示:
粒子发射器发射出粒子,对粒子初始化,由于重力场的存在和风力的影响,粒子下落过程中速度增大,能量增大。
当粒子与柔体水面发生碰撞,下落时的能量转化成波的能量,从而产生水波纹。此时粒子消亡,称为第一发生事件。之后,考虑到碰撞时水面的弹性和摩擦力,设置合适的新粒子数,继承速度和扩散率。由于初始的继承速度,新粒子上升到一定高度再次下落,与水面碰撞,产生水波纹,此时新粒子消亡,称为第二发生事件。本发明中,不再考虑之后的发生事件,因为两次发生事件产生的动画效果接近现实喷泉喷水效果,且降低了GPU的运算,减少延迟,保证画面的实时性。
步骤(5)中水波纹原理优化算法的具体方法如下所述,具体流程图见图2所示:
首先,产生水波纹我们需要一个振源和振源的位置,震源其实就是粒子下落产生的动能碰撞到水面,变成波能。因此,我们要计算每个粒子下落碰撞到水面的速度、位置和波能。
如果粒子只受重力作用,粒子的运动方式类似于抛物线运动或自由落体运动。粒子的在某时刻i的位置、速度可由以下公式表示:
(1)
,分别表示粒子的初始速度和初始位置,表示加速度,表示速度。
但本发明中考虑到实际情况,喷泉模拟场景含风力的影响,这里可以把风力分解成水平和垂直两个方向。那么,当粒子受到外界因素影响时只需要改变粒子运动的加速度即可。结合本发明,计算粒子位置与速度用Euler方法即可:
(2)
(3)
考虑到喷泉喷水给予的初始速度一样,由于受风力等其他里影响(为了简化,本发明只考虑风力),水滴发生扩散,导致下落到水面的位置,所以每个粒子位置的计算不能忽略和简化,但粒子动能的计算由于只受到初始速度和风力垂直方向的影响,粒子动能等于初始动能加变化的风动能。因此可以只计算一个粒子的动能,通过水波纹贴图,完成水波纹效果,这样大大提高了运行速度。
常用的水波纹算法是用sin、cos函数求得,但考虑到本发明中的喷泉模型是动态实时仿真,在保证画面有较好真实感的同时也必须确保渲染的实时性。因此,在水波纹算法上再次进行优化改进,取一种近似值的快速算法方法。
首先,建立两个与柔体水面一样大小的数组Wf1[Width*PoolHeight]和Wf2[Width*Height](Width=柔体水面的象素宽度、Height=柔体水面的象素高度),用来保存柔体水面上的每一个点前一时刻和后一时刻的波幅数据,因为波幅代表波的能量,所以这两个数组也称为波能缓冲区。水面初始状态是一个平面,各点波幅为0,所以两个数组的初始值为0。
接下来是推导计算波幅的公式,
假设存在一个一次公式,根据其任意时刻某个点前、后、左、右四个方向的点以及该点自身的振幅可推算出下一时刻该点的振幅,那么,利用归纳法可以求出任意时刻水面上的任意一点的振幅。设某时刻点的振幅为,除受自身振幅影响外,同时受到其周围前、后、左、右四个点(、、、)的影响(为了简化,忽略了其它所有点),且这四个点对点的影响力可以说是机会均等的。那么我们可以假设这个一次公式为:
(4)
a、b为待定系数,为0点下一时刻的振幅;、、、、为当前时刻的振幅
下面我们来求解a和b。
假设水的摩擦力为0。在理想条件下,水的总势能将保持不变。也就是说在任何时刻,所有点的振幅的和保持不变。那么可以得到以下公式:
(5)
将每个点用公式4计算,然后代入上式,得到:
(6)
即
找出一个最简解:a=1/2、b=-1因为1/2可以用移位运算符“>>”来进行,不用进行乘除运算,所以,这组解是最适用的而且是最快的。那么最后得到的公式就是:
(7)
上面这个近似公式可以推广到下面这个一般结论:已知某一时刻水面上任意一点的波幅,那么,在下一时刻,任意一点的波幅就等于与该点相邻的前、后、左、右四点的波幅的和除以2、再减去该点的波幅。
考虑到实际情况下,水是存在阻尼的,否则,用上面这个公式,一旦你在水中增加一个波源,水面将永不停止的震荡下去。所以,还需要对波幅数据进行衰减处理,让每一个点在经过一次计算后,波幅都比理想值按一定的比例降低。这个衰减率经过测试,用1/32比较合适,也就是1/2^5。可以通过移位运算很快的获得。
这种用数据缓冲区对图象进行水波处理的方法,有个最大的好处就是,程序运算和其示的速度与水波的复杂程度是没有关系的,无论水面是风平浪静还是波涛汹涌,程序的fps始终保持不变。
Claims (5)
1.一种基于粒子系统的喷泉模拟实现方法,其特征在于:该方法包括以下步骤:
步骤(1).绘制UV曲线,构建喷泉模型;
步骤(2).采用粒子系统的动态更新过程描述喷泉水流从喷口喷出直至落下产生水波纹的整个运动过程;
步骤(3).采用纹理映射的方法对水粒子进行绘制;
步骤(4).制作柔体水面;
步骤(5).制作水波纹特效,实现水滴与水面碰撞后的水波纹效果;
步骤(6).灯光设定;
步骤(7).渲染。
2.根据权利要求1所述的基于粒子系统的喷泉模拟实现方法,其特征在于:步骤(2)中粒子系统的动态更新过程具体为:
第一、创建粒子发射器,选择发射器类型,设置发射速率、方向属性、粒子发射速率、随机速率;
第二、为粒子设置渲染属性,选择多条纹渲染类型,并添加动态属性,包括透明度、颜色;根据实际情况,为粒子添加重力场、风力、摩擦力;
第三、对粒子与柔体水面碰撞分析,结合粒子系统建模特性,采用旧粒子碰撞消亡生成新粒子的发生事件,并对新粒子设置合适阻尼和继承速度;当碰撞时,产生水波纹。
3.根据权利要求1所述的基于粒子系统的喷泉模拟实现方法,其特征在于:步骤(4)具体为:通过曲面建模生成平面,布材质给平面,对平面的凹凸贴图进行纹理贴图。
4.根据权利要求1所述的基于粒子系统的喷泉模拟实现方法,其特征在于:步骤(5)具体为:第一、根据水波纹原理和喷泉模型建模需求,优化计算方法;
第二、制作水波纹贴图和重力贴图。
5.根据权利要求4所述的基于粒子系统的喷泉模拟实现方法,其特征在于:优化水波纹原理计算公式,其具体方法如下:
首先,设置振源和振源的位置,计算每个粒子下落碰撞到水面的速度、位置和波能;
计算粒子位置与速度:
(2)
(3)
式中W表示位置,表示加速度,表示速度;
计算一个粒子的动能,通过水波纹贴图,完成水波纹效果:
首先,建立两个与柔体水面一样大小的数组Wf1[Width*PoolHeight]和Wf2[Width*Height](Width=柔体水面的象素宽度、Height=柔体水面的象素高度),用来保存柔体水面上的每一个点前一时刻和后一时刻的波幅数据;
推导计算波幅的公式:
假设一次公式为:
(4)
式中a、b为待定系数,为0点下一时刻的振幅;、、、、为当前时刻的振幅;假设水的摩擦力为0,得到以下公式:
(5)
将每个点用公式(4)计算,然后代入上式,得到:
(6)
即
找出一个最简解:a=1/2、b=-1;最后得到的公式就是:
(7)
考虑水存在阻尼的,对波幅数据进行衰减处理,让每一个点在经过一次计算后,波幅都比理想值按一定的比例降低。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510606628.0A CN105303601A (zh) | 2015-09-22 | 2015-09-22 | 一种基于粒子系统的喷泉模拟实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510606628.0A CN105303601A (zh) | 2015-09-22 | 2015-09-22 | 一种基于粒子系统的喷泉模拟实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105303601A true CN105303601A (zh) | 2016-02-03 |
Family
ID=55200818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510606628.0A Pending CN105303601A (zh) | 2015-09-22 | 2015-09-22 | 一种基于粒子系统的喷泉模拟实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105303601A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574471A (zh) * | 2014-12-31 | 2015-04-29 | 电子科技大学 | 一种基于混合模型的真实感尾焰实时动画方法 |
CN106056660A (zh) * | 2016-05-31 | 2016-10-26 | 深圳铂睿智恒科技有限公司 | 一种移动终端模拟粒子系统的方法 |
CN108335343A (zh) * | 2018-03-15 | 2018-07-27 | 北京中科水景科技有限公司 | 喷泉预演仿真方法、系统及服务器 |
CN112435304A (zh) * | 2020-07-20 | 2021-03-02 | 上海哔哩哔哩科技有限公司 | 水体交互贴图方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930622A (zh) * | 2009-09-29 | 2010-12-29 | 北京航空航天大学 | 浅水水波的真实感建模与绘制 |
CN103578128A (zh) * | 2013-11-05 | 2014-02-12 | 大连创达技术交易市场有限公司 | 一种基于材质的粒子效果优化方法 |
-
2015
- 2015-09-22 CN CN201510606628.0A patent/CN105303601A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930622A (zh) * | 2009-09-29 | 2010-12-29 | 北京航空航天大学 | 浅水水波的真实感建模与绘制 |
CN103578128A (zh) * | 2013-11-05 | 2014-02-12 | 大连创达技术交易市场有限公司 | 一种基于材质的粒子效果优化方法 |
Non-Patent Citations (9)
Title |
---|
DONG WENSHENG 等: "Fountain Simulation Based Particle System for Virtual Scene", 《201O INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATION TECHNOLOGIES IN AGRICULTURE ENGINEERING》 * |
孙慧: "基于粒子和波的水行为模拟", 《中国优秀硕士学位论文全文数据库 信息科技辑 (月刊)》 * |
王吴 等主编: "《三向造型设计MAYA2.5现场实作》", 31 January 2000, 北京:北京希望电子出版社 * |
王瑞玲 等: "虚拟喷泉的计算机生成技术", 《计算机辅助工程》 * |
环球数码编著: "《动画传奇-Maya后期特效》", 30 November 2011, 北京:清华大学出版社 * |
盛显: "飞行器集成设计框架软件研究", 《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑(月刊)》 * |
邹运兰 等: "基于粒子系统的水波模拟", 《计算机应用与软件》 * |
陈和平 等: "水波特效模拟原理及其快速实现方法", 《计算机应用研究》 * |
韩凉: "基于粒子系统的虚拟喷泉的仿真与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574471A (zh) * | 2014-12-31 | 2015-04-29 | 电子科技大学 | 一种基于混合模型的真实感尾焰实时动画方法 |
CN104574471B (zh) * | 2014-12-31 | 2018-01-23 | 电子科技大学 | 一种基于混合模型的真实感尾焰实时动画方法 |
CN106056660A (zh) * | 2016-05-31 | 2016-10-26 | 深圳铂睿智恒科技有限公司 | 一种移动终端模拟粒子系统的方法 |
CN108335343A (zh) * | 2018-03-15 | 2018-07-27 | 北京中科水景科技有限公司 | 喷泉预演仿真方法、系统及服务器 |
CN112435304A (zh) * | 2020-07-20 | 2021-03-02 | 上海哔哩哔哩科技有限公司 | 水体交互贴图方法及系统 |
CN112435304B (zh) * | 2020-07-20 | 2023-03-14 | 上海哔哩哔哩科技有限公司 | 水体交互贴图方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sumner et al. | Animating sand, mud, and snow | |
CN101706967B (zh) | 一种真实感云层的综合模拟方法 | |
CN103714568B (zh) | 一种大规模粒子系统的实现方法 | |
JP2016126766A (ja) | 仮想環境における仮想センサ | |
CN101587594B (zh) | 航海模拟器场景中的海浪构网方法 | |
CN105303601A (zh) | 一种基于粒子系统的喷泉模拟实现方法 | |
CN107273617B (zh) | 一种利用浅水波方程获得表面流流体运动的实时模拟方法及系统 | |
Chen et al. | A heuristic approach to the simulation of water drops and flows on glass panes | |
CN110400366A (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN103839287A (zh) | 一种用湍流方程丰富火焰模拟细节的方法 | |
Chen et al. | Real-time continuum grass | |
JP3483967B2 (ja) | 雲状現象可視化装置 | |
CN104537704A (zh) | 一种鸟类躯干模型的羽毛实时动态生成方法 | |
Yang et al. | Physically-based animation for realistic interactions between tree branches and raindrops | |
Feng et al. | Research on Dynamic Water Surface and Ripple Animation | |
Tan et al. | Particle system based snow simulating in real time | |
Puig-Centelles et al. | Creation and control of rain in virtual environments | |
Tan et al. | Real-time snowing simulation based on particle systems | |
Ye | Raining simulation based on improved particle systems algorithms | |
Dong et al. | Firework simulation based on particle system in virtual scene | |
Feng et al. | Real-time rendering of raining animation based on the graphics hardware acceleration | |
Sun et al. | Animating pictures using procedural 2.5 D water flow simulation | |
Jung et al. | GPU-based real-time on-surface droplet flow in X3D | |
Tang et al. | Swaying Tree Simulation by Slicing Partition | |
Li et al. | Real-time rendering and animating of grass |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160203 |