CN106056660A - 一种移动终端模拟粒子系统的方法 - Google Patents
一种移动终端模拟粒子系统的方法 Download PDFInfo
- Publication number
- CN106056660A CN106056660A CN201610372043.1A CN201610372043A CN106056660A CN 106056660 A CN106056660 A CN 106056660A CN 201610372043 A CN201610372043 A CN 201610372043A CN 106056660 A CN106056660 A CN 106056660A
- Authority
- CN
- China
- Prior art keywords
- particle
- frame
- mobile terminal
- simulation
- life cycle
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明涉及移动终端技术领域,公开了一种移动终端模拟粒子系统的方法,所述方法包括:当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;生成粒子并对粒子系统进行初始化;判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;粒子系统仿真完成,帧结束。本发明通过采用粒子系统对模糊现象进行模拟,利用粒子系统实现了三维动态仿真,提升了模拟效果的真实度,将复杂运算的特效应用到移动终端中,方便了用户,提升了移动终端的游戏特效处理速度。
Description
技术领域
本发明涉及移动终端技术领域,尤其是一种移动终端模拟粒子系统的方法。
背景技术
随着手游技术和VR(Virtual Reality:虚拟现实)技术的不断发展,自主研发的游戏特效种类繁多,不断推陈出新,粒子特效的运用能够使游戏画面以及手机界面更加具有渲染力,增加真实感的同时会给用户带来不一样的体验。
在游戏图形系统的开发过程中,经常要对模糊现象进行模拟,如雨、 烟、水流、火焰、雾、雪、尘埃、火花、爆炸以及发光的轨迹等模糊现象进行模拟,模拟这些现象的渲染技术称作粒子系统,换言之,粒子系统是指计算机图形学中以粒子群体来模拟模糊现象的技术。相比于传统的渲染技术,采用粒子系统对模糊现象进行模拟,能够提升模拟效果的真实度。
粒子系统的基础是大量的粒子,通过对粒子进行模拟和渲染,可以实现对模糊对象的模拟。
粒子系统的性能直接影响对模糊现象进行模拟的真实度,现有的粒子系统处理方法一般是通过控制粒子数量或者改进模拟算法来提升粒子系统的性能。
随着计算机图形学的迅速发展,新技术已经层出不穷,传统经典的欧式几何方法只能用于直线,光滑的曲线以及平面等,可以实现一些规则的图形建模,对于动态的景物模拟已经显得力不从心,即而现有技术中还无法在手机系统中实现复杂的游戏特效,操作也不方便。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术无法而将这种复杂运算的特效应用到手机中,因此本发明的一种移动终端模拟粒子系统的方法来通过粒子特效运用到手机中,通过采用粒子系统对模糊现象进行模拟,主要利用三维可视化技术实现了三维建模,并且利用粒子系统实现了三维动态仿真,能够提升模拟效果的真实度,将复杂运算的特效应用到移动终端中,本发明在不增加粒子系统的处理流程的复杂度的情况下,优化粒子系统的性能,从而提升粒子系统对模糊现象进行模拟的真实度。
本发明解决技术问题所采用的技术方案如下:
一种移动终端模拟粒子系统的方法,其中,包括:
步骤A,当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;
步骤B,当粒子的帧启动后,生成粒子并对粒子系统进行初始化;
步骤C,判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;
步骤D,渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;
步骤E,粒子系统仿真完成,帧结束。
数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由帧头和帧数据组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。
粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的游戏特效,经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果。
通过上述步骤可以实现对粒子的渲染,使在手机上也可以体验到具备各种游戏特效的、具备抽象视觉效果的手游。
所述步骤B中的生成粒子具体包括:
B1、控制粒子系统粒子集的初始分布按照一定规律加以排列;
B2、假设粒子的空间坐标为 ,则粒子的三维坐标分布则满足一个约束方程;
其中服从一概率分布,所述概率分布为均匀分布或者正态分布。
所述约束方程,是在建立系统模型时,系统的状态变量必须满足的一些条件所构成的方程;概率分布是概率论的基本概念之一,用以表述随机变量取值的概率规律。
所述步骤C中判断粒子的生命周期是粒子系统的粒子属性来体现,粒子属性根据模拟场景的不同有所改变,通用的粒子属性包括时间属性,空间属性,外观属性和运动属性,粒子系统根据不同场景的模拟需要而呈现不同的粒子属性,而不同的粒子属性是通过粒子属性中三大属性的相关计算公式的不同而得到不同的数据,根据不同的数据从而实现不同的场景特效。
所述粒子的时间属性指粒子的生命周期;粒子的空间属性指粒子在三维空间中的坐标值,即X轴,Y轴,Z轴三个坐标的分布;粒子的外观属性指粒子的颜色,尺寸,透明度,其决定了粒子的视觉效果;粒子的运动属性包括粒子的速度、加速度,在每两帧之间,粒子的当前位置是由改粒子的前一帧的位置和当前的速度决定的;所述粒子运动属性的加速度是一个综合的数值,受到重力Gravity、风力WindForce、空气浮力Air Buoyancy因素的影响,运用物理中的牛顿运动定律加以处理,最终得出一个加速度。
粒子运动分为三个明显的阶段,粒子生成,粒子更新,粒子消亡;所述粒子生成后,在所述步骤D中,粒子属性随着帧数的更新而不断地改变,从微观上一个粒子的角度去分析,假设当前帧为帧,对比前一时间帧,两者之间的时间差为,所述粒子的空间属性确定为:
,
,
,
其中,为第帧粒子三维空间的坐标,为第帧粒子三维空间的坐标,为第帧时粒子在三维空间上的三个速度分量。
在所述步骤D中,对粒子进行渲染时,所述粒子的第帧粒子运动属性确定为:
,
其中,为第帧粒子的速度,为第帧粒子的速度,为第帧粒子的加速度。
在所述步骤D中,渲染粒子包括粒子的外观属性,所述粒子外观属性变化包括:粒子的颜色的变化,粒子大小的变化,和粒子透明度的变化。
在所述步骤D中,渲染粒子包括对粒子颜色的渲染,所述粒子颜色的变化确定为:
,
,
,
其中,表示粒子颜色属性值(R,G,B),表示单位时间下粒子颜色的变化值。
在所述步骤D中,渲染粒子包括对粒子大小的渲染,所述粒子大小的变化确定为:
,
,
,
其中,表示粒子的大小,表示单位时间下粒子尺寸的变化值。
在所述步骤D中,渲染粒子包括对粒子透明度的渲染,所述粒子透明度的变化确定为:
,
,
,
其中,表示粒子的透明度,表示单位时间内粒子透明度的变化值,透明值表示粒子当前的亮度,一般配合着深度测试、测试等可以轻松地实现一些半透明景物的渲染。
步骤C中有提到判断粒子生命周期是否结束,那么如何判断粒子的消亡,粒子的消亡一般满足下列三个条件之一:
1.粒子的生命值随着帧数的更新,不断地减少,最终减为零时,粒子则被认为达到消亡条件;
2.粒子空间属性会制约粒子的消亡,当例子运动到屏幕之外的区域,为了减少计算机的运算量,则认为粒子消亡;
3.粒子的颜色值和透明度达到最低时,或者长时间处在和背景色相融时,即使其他属性仍然是正常范围,也认为粒子消亡。
凡是达到粒子消亡的三个条件之一,则认为粒子已经处于消亡状态,此时需要重新初始化粒子状态。
并且常见粒子绘制方法有三种,点粒子、线粒子、片面粒子。
1.点粒子的绘制是通过点光源实现的,可以有效避免粒子间遮挡的问题,也不用考虑粒子之间碰撞的问题,这样可以节省系统的硬件开销,同时提高实时性的效果。
2.线粒子绘制的基本方法是,定义一个具有头和尾的结构性粒子,其中头尾粒子均具有自己的属性,所有属性通过一个头到尾的线性插值实现,透明度则是从中心到边缘,按照线性函数向两边递减,这种生成方式对硬件的开销小,适用并行实现,非常适合手机这样的设备。
3.片面粒子定义为很小的片面,每个片面粒子都具有自己的属性,而且能够反射光线,这种绘制方式能够显示更多的物理信息。
一种移动终端模拟粒子系统的系统,其中,包括:
建立模块,用于当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;
粒子生成模块,用于当粒子的帧启动后,生成粒子并对粒子系统进行初始化;
判断模块,用于判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;
渲染与仿真模块,用于渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;
仿真完成控制模块,用于粒子系统仿真完成,控制帧结束;
所述移动终端模拟粒子系统的系统采用上述任一项所述的方法实现。
所述移动终端模拟粒子系统的系统,其中,粒子生成模块包括:
控制单元,用于控制粒子系统粒子集的初始分布按照一定规律加以排列;
计算单元,用于假设粒子的空间坐标为,则粒子的三维坐标分布则满足一个约束方程;
其中服从一概率分布,所述概率分布为均匀分布或者正态分布。
有益效果:本发明所提供的移动终端模拟粒子系统的方法,当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;生成粒子并对粒子系统进行初始化;判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;粒子系统仿真完成,帧结束。本发明通过采用粒子系统对模糊现象进行模拟,利用粒子系统实现了三维动态仿真,提升了模拟效果的真实度,将复杂运算的特效应用到移动终端中,方便了用户,提升了移动终端的游戏特效处理速度。
附图说明
图1是本发明移动终端模拟粒子系统的方法流程示意图;
图2是本发明移动终端模拟粒子系统的系统实施例功能原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参见图1,图1是本发明移动终端模拟粒子系统的方法流程示意图。如图1所示,本发明实施例提供的一种移动终端模拟粒子系统的方法,包括以下步骤:
步骤S10,当移动终端需对模糊现象进行模拟时,建立粒子的帧启动。
本发明中,在移动终端模拟粒子系统的方法开始后,当移动终端需对模糊现象进行模拟时,也就是说移动终端在运行复杂的大型游戏时,必然会出现各种虚拟的特效和场景,所以移动终端会发出相应的指给粒子系统,粒子系统在收到指令后,建立粒子的帧启动。
步骤S20,当粒子的帧启动后,生成粒子并对粒子系统进行初始化。
所述粒子生成方法有三种,点粒子、线粒子、片面粒子;所述粒子系统中粒子集的初始分布是按照一定规律加以排列,粒子的空间坐标为,则粒子的三维坐标分布则满足一个约束方程,其中服从一概率分布,所述概率分布为均匀分布或者正态分布。
步骤S30,判断粒子生命周期是否结束。
判断粒子生命周期是否结束,那么如何判断粒子的消亡,粒子的消亡一般满足下列三个条件之一:粒子的生命值随着帧数的更新,不断地减少,最终减为零时,粒子则被认为达到消亡条件;粒子空间属性会制约粒子的消亡,当例子运动到屏幕之外的区域,为了减少计算机的运算量,则认为粒子消亡;粒子的颜色值和透明度达到最低时,或者长时间处在和背景色相融时,即使其他属性仍然是正常范围,也认为粒子消亡;凡是达到粒子消亡的三个条件之一,则认为粒子已经处于消亡状态,此时需要重新初始化粒子状态。
所述步骤S30中判断粒子的生命周期是粒子系统的粒子属性来体现,粒子属性根据模拟场景的不同有所改变,通用的粒子属性包括时间属性,空间属性,外观属性和运动属性,粒子系统根据不同场景的模拟需要而呈现不同的粒子属性。
所述粒子的时间属性指粒子的生命周期;粒子的空间属性指粒子在三维空间中的坐标值,即X轴,Y轴,Z轴三个坐标的分布;粒子的外观属性指粒子的颜色,尺寸,透明度,其决定了粒子的视觉效果;粒子的运动属性包括粒子的速度、加速度,在每两帧之间,粒子的当前位置是由改粒子的前一帧的位置和当前的速度决定的;所述粒子运动属性的加速度是一个综合的数值,受到重力Gravity、风力WindForce、空气浮力Air Buoyancy因素的影响,运用物理中的牛顿运动定律加以处理,最终得出一个加速度。
步骤S40,如果生命周期结束,则删除粒子,直接执行步骤S70。
判断粒子生命周期已经结束,即由上述三个条件判断粒子已经消亡,那么消亡的粒子已经没有了其作用,那么将对消亡的粒子进行删除。
步骤S50,如果生命周期未结束,则更新粒子状态。
判断粒子生命周期未结束,则对没有消亡的粒子的状态进行更新,使粒子达到一种活跃的状态,便于后面对粒子的渲染操作,使其具备特效功能。
步骤S60,渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;
如果生命周期未结束,在更新粒子状态之后,对粒子进行渲染,调用所述粒子系统的预设渲染策略,根据所述待模拟对象的颜色,大小,透明度对更新后的粒子进行渲染。
对粒子的渲染主要通过粒子的空间属性,运动属性和外观属性的改变来达到相应的效果,而这些属性的变化是根据不同属性的计算数据来改变的,所以三大属性的变化确定如下:
所述粒子生成后,粒子属性随着帧数的更新而不断地改变,从微观上一个粒子的角度去分析,假设当前帧为帧,对比前一时间帧,两者之间的时间差为,所述粒子的空间属性确定为:
,
,
,
其中,为第帧粒子三维空间的坐标,为第帧粒子三维空间的坐标,为第帧时粒子在三维空间上的三个速度分量。
对粒子进行渲染时,所述粒子的第帧粒子运动属性确定为:
,
其中,为第帧粒子的速度,为第帧粒子的速度,为第帧粒子的加速度。
渲染粒子包括粒子的外观属性,所述粒子外观属性变化包括:粒子的颜色的变化,粒子大小的变化,和粒子透明度的变化。
渲染粒子包括对粒子颜色的渲染,所述粒子颜色的变化确定为:
,
,
,
其中,表示粒子颜色属性值(R,G,B),表示单位时间下粒子颜色的变化值。
渲染粒子包括对粒子大小的渲染,所述粒子大小的变化确定为:
,
,
,
其中,表示粒子的大小,表示单位时间下粒子尺寸的变化值。
渲染粒子包括对粒子透明度的渲染,所述粒子透明度的变化确定为:
,
,
,
其中,表示粒子的透明度,表示单位时间内粒子透明度的变化值。
步骤S70,粒子系统仿真完成,帧结束。
在粒子进行针对性的渲染结束后,便完成了粒子系统的特效渲染,达到了所需要的特效功能,则粒子系统仿真完成,帧结束,整个移动终端模拟粒子系统的方法的过程结束。
在所述步骤D中,渲染粒子包括对粒子大小的渲染,所述粒子大小的变化确定为:
,
,
,
其中,表示粒子的大小,表示单位时间下粒子尺寸的变化值。
在所述步骤D中,渲染粒子包括对粒子透明度的渲染,所述粒子透明度的变化确定为:
,
,
,
其中,表示粒子的透明度,表示单位时间内粒子透明度的变化值,透明值表示粒子当前的亮度,一般配合着深度测试、测试等可以轻松地实现一些半透明景物的渲染。
步骤C中有提到判断粒子生命周期是否结束,那么如何判断粒子的消亡,粒子的消亡一般满足下列三个条件之一:
4.粒子的生命值随着帧数的更新,不断地减少,最终减为零时,粒子则被认为达到消亡条件;
5.粒子空间属性会制约粒子的消亡,当例子运动到屏幕之外的区域,为了减少计算机的运算量,则认为粒子消亡;
6.粒子的颜色值和透明度达到最低时,或者长时间处在和背景色相融时,即使其他属性仍然是正常范围,也认为粒子消亡。
凡是达到粒子消亡的三个条件之一,则认为粒子已经处于消亡状态,此时需要重新初始化粒子状态。
并且常见粒子绘制方法有三种,点粒子、线粒子、片面粒子。
1.点粒子的绘制是通过点光源实现的,可以有效避免粒子间遮挡的问题,也不用考虑粒子之间碰撞的问题,这样可以节省系统的硬件开销,同时提高实时性的效果。
2.线粒子绘制的基本方法是,定义一个具有头和尾的结构性粒子,其中头尾粒子均具有自己的属性,所有属性通过一个头到尾的线性插值实现,透明度则是从中心到边缘,按照线性函数向两边递减,这种生成方式对硬件的开销小,适用并行实现,非常适合手机这样的设备。
3.片面粒子定义为很小的片面,每个片面粒子都具有自己的属性,而且能够反射光线,这种绘制方式能够显示更多的物理信息。
以下通过一具体的应用实施例对本发明的方法中通过建立粒子系统,对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真做进一步详细描述:
第一步、建立粒子的属性类;
Class CParticle{
int x;
int y;
int startX;
int startY;
double startTime;
Vector3D m_Position;
Vector3D m_Velocity;
Vector3D m_Size;
Vector3D m_Color;
Vector3D m_Alpha;
public Particle(int x, int y, int startX, int startY,
Vector3D m_Position,
Vector3D m_Velocity,
Vector3D m_Size,
Vector3D m_Color,
Vector3D m_Alpha,
double m_StartTime
);
};
第二步、粒子系统的初始化;
Public void Particle(int x, int y, int startX, int startY,
Vector3D Position,
Vector3D Velocity,
Vector3D Size,
Vector3D Color,
Vector3D Alpha,
double startTime
){
Init();
this.x = x;
this.y = y;
this.startX = startX;
this.startY = startY;
this.m_Position = Position;
this. m_Velocity = Velocity;
this. m_Size = Size;
this. m_Color = Color;
this. m_Alpha = Alpha;
this. m_StartTime = startTime;
}
第三步、粒子的生成
public void addParticle(int num, double startTime, int winWidth){
for (int i = 0; i < num; i++) {
int color = getColor(i);
int r = 1;
double Velocity.x = -30 + 10 * (Math.random());//垂直速度
double Velocity.y = 10 - 20 * (Math.random());//水平速度
int startX = winWidth / 2;
int startY = 100;
Particle partical = new Particle (x, y, startX, startY,
Position,Velocity, Size,
Color , Alpha, startTime);
particals.add(partical);
}
第三步、粒子的运动规律
public void runParticleSys(void){
addParticle(num, startTime, winWidth);
while (flag) {
// 每次添加5粒
particalView.particleSet.addPartical(5, time, window_Width);
int count = particals.size();
for (int i = 0; i < count; i++) {
Particle partical = particals.get(i);
// 计算程序开始到现在的时间差
double timeSpan = time - partical.startTime;
// 计算此时粒子的X值
int tempX = (int) (partical.startX +partical.horizontal_v
* timeSpan);
// 4.9 * timeSpan * timeSpan=1/2*g*t*t;//物理公式,g=9.8m/s;
// 计算此时粒子的Y值
int tempY = (int) (partical.startY + 4.9 * timeSpan *timeSpan);
if (tempY > ParticleView.DIE_OUT_LINE) {
particals.remove(partical);// 删除该粒子
count = particals.size();// 重新获取个数
}
position.x = tempX;
position.y = tempY;
position.z =0;
}
time += span;
try {
Thread.sleep(sleepSpan);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
第四步、更新绘制粒子状态
public void updateDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK); // 清屏
Paint paint = new Paint(); // 创建画笔对象
// 遍历粒子集合,绘制每个粒子
for (int i = 0; i < particleSet.size(); i++) {
Particle p = particleSet.get(i);
paint.setColor(p.color); // 设置画笔颜色为粒子颜色
int tempX = m_Position.x; // 获得粒子X坐标
int tempY = m_Position.y; // 获得粒子Y坐标
int tempRadius = m_Size.r; // 获得粒子半径
RectF oval = new RectF(tempX, tempY, tempX + 2 *tempRadius, tempY + 2 * tempRadius);
canvas.drawCircle(tempX, tempY, tempRadius, paint);
}
paint.setColor(Color.WHITE); // 设置画笔颜色
paint.setTextSize(18); // 设置文字大小
paint.setAntiAlias(true); // 设置抗锯齿
canvas.drawText(fps, 15, 15, paint); // 画出帧速率字符串
}
第五步、粒子消亡
public void destoryParticle(int x, int y, int startX, int startY,
Vector3D m_Position,
Vector3D m_Velocity,
Vector3D m_Size,
Vector3D m_Color,
Vector3D m_Alpha,
double m_StartTime
){
delete m_Position;
delete m_Velocity;
delete m_Size;
delete m_Color;
delete m_Alpha;
x=0; y=0;
startX=0; startY=0; startTime=0;
}。
本发明通过上述方法。能实现模拟各种可视化虚拟现实方面用途广泛,在模拟风、雨、雷、电、爆炸、烟花等各种自然特效方面,本发明的粒子系统可以实现容易操作方便。
基于上述方法实施例,本发明还提供了一种移动终端模拟粒子系统的系统,如图2所示,移动终端模拟粒子系统的系统包括:
建立模块210,用于当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;具体如上所述。
粒子生成模块220,用于当粒子的帧启动后,生成粒子并对粒子系统进行初始化;具体如上所述。
判断模块230,用于判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;具体如上所述。
渲染与仿真模块240,用于渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;具体如上所述。
仿真完成控制模块250,用于粒子系统仿真完成,控制帧结束;具体如上所述。
所述移动终端模拟粒子系统的系统采用上述任一项所述的方法实现。
所述移动终端模拟粒子系统的系统,其中,粒子生成模块包括:
控制单元,用于控制粒子系统粒子集的初始分布按照一定规律加以排列;
计算单元,用于假设粒子的空间坐标为,则粒子的三维坐标分布则满足一个约束方程;
其中服从一概率分布,所述概率分布为均匀分布或者正态分布。
综上所述:本发明所提供的移动终端模拟粒子系统的方法,当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;生成粒子并对粒子系统进行初始化;判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;粒子系统仿真完成,帧结束。本发明通过采用粒子系统对模糊现象进行模拟,利用粒子系统实现了三维动态仿真,提升了模拟效果的真实度,将复杂运算的特效应用到移动终端中,方便了用户,提升了移动终端的游戏特效处理速度。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种移动终端模拟粒子系统的方法,其特征在于,包括:
步骤A,当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;
步骤B,当粒子的帧启动后,生成粒子并对粒子系统进行初始化;
步骤C,判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;
步骤D,渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;
步骤E,粒子系统仿真完成,帧结束。
2.根据权利要求1所述移动终端模拟粒子系统的方法,其特征在于,所述步骤B中的生成粒子具体包括:
B1、控制粒子系统粒子集的初始分布按照一定规律加以排列;
B2、假设粒子的空间坐标为,则粒子的三维坐标分布则满足一个约束方程;
其中服从一概率分布,所述概率分布为均匀分布或者正态分布。
3.根据权利要求1所述移动终端模拟粒子系统的方法,其特征在于,所述步骤C中判断粒子的生命周期是粒子系统的粒子属性来体现,粒子属性根据模拟场景的不同有所改变,通用的粒子属性包括时间属性,空间属性,外观属性和运动属性,粒子系统根据不同场景的模拟需要而呈现不同的粒子属性。
4.根据权利要求3所述移动终端模拟粒子系统的方法,其特征在于,所述粒子的时间属性指粒子的生命周期;粒子的空间属性指粒子在三维空间中的坐标值,即X轴,Y轴,Z轴三个坐标的分布;粒子的外观属性指粒子的颜色,尺寸,透明度,其决定了粒子的视觉效果;粒子的运动属性包括粒子的速度、加速度,在每两帧之间,粒子的当前位置是由改粒子的前一帧的位置和当前的速度决定的;所述粒子运动属性的加速度是一个综合的数值,受到重力Gravity、风力Wind Force、空气浮力Air Buoyancy因素的影响,运用物理中的牛顿运动定律加以处理,最终得出一个加速度。
5.根据权利要求3所述移动终端模拟粒子系统的方法,其特征在于,所述粒子生成后,在所述步骤D中,粒子属性随着帧数的更新而不断地改变,从微观上一个粒子的角度去分析,假设当前帧为帧,对比前一时间帧,两者之间的时间差为,所述粒子的空间属性确定为:
,
,
,
其中,为第帧粒子三维空间的坐标,为第帧粒子三维空间的坐标,为第帧时粒子在三维空间上的三个速度分量。
6.根据权利要求3所述移动终端模拟粒子系统的方法,其特征在于,在所述步骤D中,对粒子进行渲染时,所述粒子的第帧粒子运动属性确定为:
,
其中,为第帧粒子的速度,为第帧粒子的速度,为第帧粒子的加速度。
7.根据权利要求3所述移动终端模拟粒子系统的方法,其特征在于,在所述步骤D中,渲染粒子包括粒子的外观属性,所述粒子外观属性变化包括:粒子的颜色的变化,粒子大小的变化,和粒子透明度的变化。
8.根据权利要求7所述移动终端模拟粒子系统的方法,其特征在于,在所述步骤D中,渲染粒子包括对粒子颜色的渲染,所述粒子颜色的变化确定为:
,
,
,
其中,表示粒子颜色属性值(R,G,B),表示单位时间下粒子颜色的变化值;
在所述步骤D中,渲染粒子包括对粒子大小的渲染,所述粒子大小的变化确定为:
,
,
,
其中,表示粒子的大小,表示单位时间下粒子尺寸的变化值;
在所述步骤D中,渲染粒子包括对粒子透明度的渲染,所述粒子透明度的变化确定为:
,
,
,
其中,表示粒子的透明度,表示单位时间内粒子透明度的变化值。
9.一种移动终端模拟粒子系统的系统,其特征在于,包括:
建立模块,用于当移动终端需对模糊现象进行模拟时,建立粒子的帧启动;
粒子生成模块,用于当粒子的帧启动后,生成粒子并对粒子系统进行初始化;
判断模块,用于判断粒子生命周期,如果生命周期结束,则删除粒子,如果生命周期未结束,则更新粒子状态;
渲染与仿真模块,用于渲染粒子,通过对粒子系统的粒子属性进行对应渲染,控制对模糊现象进行模拟,并利用三维可视化技术实现三维建模,利用粒子系统实现三维动态仿真;
仿真完成控制模块,用于粒子系统仿真完成,控制帧结束;
所述移动终端模拟粒子系统的系统采用权利要求1-8任一项所述的方法实现。
10.根据权利要求9所述移动终端模拟粒子系统的系统,其特征在于,粒子生成模块包括:
控制单元,用于控制粒子系统粒子集的初始分布按照一定规律加以排列;
计算单元,用于假设粒子的空间坐标为,则粒子的三维坐标分布则满足一个约束方程;
其中服从一概率分布,所述概率分布为均匀分布或者正态分布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610372043.1A CN106056660A (zh) | 2016-05-31 | 2016-05-31 | 一种移动终端模拟粒子系统的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610372043.1A CN106056660A (zh) | 2016-05-31 | 2016-05-31 | 一种移动终端模拟粒子系统的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106056660A true CN106056660A (zh) | 2016-10-26 |
Family
ID=57172830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610372043.1A Pending CN106056660A (zh) | 2016-05-31 | 2016-05-31 | 一种移动终端模拟粒子系统的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106056660A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106780767A (zh) * | 2016-11-25 | 2017-05-31 | 上海野火网络科技有限公司 | 粒子编辑方法及粒子编辑器 |
CN107392935A (zh) * | 2017-07-06 | 2017-11-24 | 苏州蜗牛数字科技股份有限公司 | 一种基于积分公式的粒子计算方法及粒子系统 |
CN108038896A (zh) * | 2017-12-06 | 2018-05-15 | 北京像素软件科技股份有限公司 | 光晕渐变实现方法及装置 |
CN108133506A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 实现线条动态效果的方法、装置及系统 |
CN108803876A (zh) * | 2018-06-08 | 2018-11-13 | 华北水利水电大学 | 基于增强现实的水利工程展示交互方法及系统 |
CN109191550A (zh) * | 2018-07-13 | 2019-01-11 | 乐蜜有限公司 | 一种粒子渲染方法、装置、电子设备及存储介质 |
CN109726428A (zh) * | 2018-11-16 | 2019-05-07 | 深圳供电局有限公司 | 一种虚拟现实电流表现方法 |
CN109871663A (zh) * | 2019-04-08 | 2019-06-11 | 北京理工大学 | 基于游戏引擎的烟火特效仿真系统 |
CN110415326A (zh) * | 2019-07-18 | 2019-11-05 | 成都品果科技有限公司 | 一种粒子效果的实现方法及装置 |
CN111540035A (zh) * | 2020-05-07 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 粒子渲染方法、装置及设备 |
CN111563963A (zh) * | 2020-04-22 | 2020-08-21 | 深圳震有科技股份有限公司 | 一种龙卷风气象模拟方法、智能终端及存储介质 |
CN115578504A (zh) * | 2022-09-22 | 2023-01-06 | 中科三清科技有限公司 | 图像渲染方法、终端设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100315410A1 (en) * | 2006-10-27 | 2010-12-16 | Dong-Qing Zhang | System and method for recovering three-dimensional particle systems from two-dimensional images |
CN102867334A (zh) * | 2012-08-23 | 2013-01-09 | 苏州两江科技有限公司 | 基于粒子系统模型进行实时模拟雪花沉积的方法 |
CN103049931A (zh) * | 2012-12-17 | 2013-04-17 | 南京信息工程大学 | 基于粒子系统的云团快速三维仿真算法 |
CN104143208A (zh) * | 2013-05-12 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 一种大规模真实感雪景实时渲染方法 |
CN105303601A (zh) * | 2015-09-22 | 2016-02-03 | 浙江工商大学 | 一种基于粒子系统的喷泉模拟实现方法 |
-
2016
- 2016-05-31 CN CN201610372043.1A patent/CN106056660A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100315410A1 (en) * | 2006-10-27 | 2010-12-16 | Dong-Qing Zhang | System and method for recovering three-dimensional particle systems from two-dimensional images |
CN102867334A (zh) * | 2012-08-23 | 2013-01-09 | 苏州两江科技有限公司 | 基于粒子系统模型进行实时模拟雪花沉积的方法 |
CN103049931A (zh) * | 2012-12-17 | 2013-04-17 | 南京信息工程大学 | 基于粒子系统的云团快速三维仿真算法 |
CN104143208A (zh) * | 2013-05-12 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 一种大规模真实感雪景实时渲染方法 |
CN105303601A (zh) * | 2015-09-22 | 2016-02-03 | 浙江工商大学 | 一种基于粒子系统的喷泉模拟实现方法 |
Non-Patent Citations (2)
Title |
---|
吴银霞: "基于OpenGL的3D粒子特效系统设计与实现", 《中国优秀硕士学位论文库》 * |
宇亚卫: "基于粒子系统的三维火焰模拟", 《中国优秀硕士学位论文库》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106780767A (zh) * | 2016-11-25 | 2017-05-31 | 上海野火网络科技有限公司 | 粒子编辑方法及粒子编辑器 |
CN108133506A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 实现线条动态效果的方法、装置及系统 |
CN107392935A (zh) * | 2017-07-06 | 2017-11-24 | 苏州蜗牛数字科技股份有限公司 | 一种基于积分公式的粒子计算方法及粒子系统 |
CN107392935B (zh) * | 2017-07-06 | 2021-06-29 | 苏州蜗牛数字科技股份有限公司 | 一种基于积分公式的粒子计算方法及粒子系统 |
CN108038896B (zh) * | 2017-12-06 | 2021-06-11 | 北京像素软件科技股份有限公司 | 光晕渐变实现方法及装置 |
CN108038896A (zh) * | 2017-12-06 | 2018-05-15 | 北京像素软件科技股份有限公司 | 光晕渐变实现方法及装置 |
CN108803876A (zh) * | 2018-06-08 | 2018-11-13 | 华北水利水电大学 | 基于增强现实的水利工程展示交互方法及系统 |
CN109191550A (zh) * | 2018-07-13 | 2019-01-11 | 乐蜜有限公司 | 一种粒子渲染方法、装置、电子设备及存储介质 |
CN109191550B (zh) * | 2018-07-13 | 2023-03-14 | 卓米私人有限公司 | 一种粒子渲染方法、装置、电子设备及存储介质 |
CN109726428A (zh) * | 2018-11-16 | 2019-05-07 | 深圳供电局有限公司 | 一种虚拟现实电流表现方法 |
CN109871663A (zh) * | 2019-04-08 | 2019-06-11 | 北京理工大学 | 基于游戏引擎的烟火特效仿真系统 |
CN110415326A (zh) * | 2019-07-18 | 2019-11-05 | 成都品果科技有限公司 | 一种粒子效果的实现方法及装置 |
CN111563963A (zh) * | 2020-04-22 | 2020-08-21 | 深圳震有科技股份有限公司 | 一种龙卷风气象模拟方法、智能终端及存储介质 |
CN111563963B (zh) * | 2020-04-22 | 2023-05-30 | 深圳震有科技股份有限公司 | 一种龙卷风气象模拟方法、智能终端及存储介质 |
CN111540035A (zh) * | 2020-05-07 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 粒子渲染方法、装置及设备 |
CN111540035B (zh) * | 2020-05-07 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 粒子渲染方法、装置及设备 |
CN115578504A (zh) * | 2022-09-22 | 2023-01-06 | 中科三清科技有限公司 | 图像渲染方法、终端设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106056660A (zh) | 一种移动终端模拟粒子系统的方法 | |
US8004518B2 (en) | Combined spatial index for static and dynamic objects within a three-dimensional scene | |
CN105912234B (zh) | 虚拟场景的交互方法和装置 | |
US7773087B2 (en) | Dynamically configuring and selecting multiple ray tracing intersection methods | |
JP4937907B2 (ja) | ルールベースの手続的地形生成 | |
US7940266B2 (en) | Dynamic reallocation of processing cores for balanced ray tracing graphics workload | |
US7940265B2 (en) | Multiple spacial indexes for dynamic scene management in graphics rendering | |
JP4733116B2 (ja) | ルールベースの手続的地形生成用資源管理 | |
US20080231627A1 (en) | Using Ray Tracing to Enhance Artificial Intelligence Character Behavior | |
CN105631925B (zh) | 基于osg三维渲染引擎预处理的三维场景生成方法及装置 | |
CN111192354A (zh) | 一种基于虚拟现实的三维仿真方法及系统 | |
US20220226728A1 (en) | Route navigation system within a game application environment | |
US8339398B2 (en) | Integrated acceleration data structure for physics and ray tracing workload | |
CN110309458B (zh) | 基于WebGL的BIM模型显示及渲染方法 | |
JP2008500636A (ja) | ルールベースの手続的地形生成用地形編集ツール | |
CN106952329A (zh) | 基于Unity3D与NGUI的粒子特效编辑方法及系统 | |
CN106204713A (zh) | 静态合并处理方法和装置 | |
CN103544727B (zh) | 一种基于预测分支的场景渲染优化方法、系统和移动终端 | |
US8102389B2 (en) | Box casting using an integrated acceleration data structure | |
CN108230202A (zh) | 一种消防模拟演练系统及方法 | |
CN114299200A (zh) | 布料动画处理方法及装置、电子设备、存储介质 | |
Su | The application of 3D technology in video games | |
CN108629837A (zh) | 一种用于虚拟试衣的布料实时仿真方法 | |
CN102880470A (zh) | 一种三维游戏引擎内核结构 | |
Liu | Complex Scene Loading Optimization Based On Virtual Reality Algorithm |
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: 20161026 |