文档详情

基于粒子系统模型进行实时模拟雪花沉积的方法

ting****789
实名认证
店铺
DOCX
18.45KB
约3页
文档ID:309540257
基于粒子系统模型进行实时模拟雪花沉积的方法_第1页
1/3

基于粒子系统模型进行实时模拟雪花沉积的方法专利名称:基于粒子系统模型进行实时模拟雪花沉积的方法技术领域:本发明属于真实世界计算机仿真技术领域,具体涉及一种基于粒子系统模型进行实时模拟雪花沉积的方法背景技术:对于积雪的模拟,1997年Nishita等人采用Metaball来构造和绘制积雪场景,并模拟了光线在雪表面的散射1999年Premoze等在绘制阿尔卑斯山时考虑了高山的积雪构造,但由于高山尺寸大,绘制效果比较粗糙2000年Fearnig介绍了一个复杂的积雪模型和稳定性模型来构造由几何面表达的雪,用它绘制出迄今为止最漂亮的虚拟积雪场景,但其建模过程和场景数据非常复杂,绘制速度很慢2004年Ohlsson等人采用表面预测算法来计算地面上每个网格处积雪的数量,并进行遮挡剔除,较快地绘制出积雪场景,但仍需要大 量的预处理工作国内积雪研究方面,2002年陈彦云等采用体纹理映射和位移映射技术构造出较为逼真的积雪场景2007年贺怀清等人引入噪声技术模拟积雪,其方法只适用于大场景模拟积雪的情况,对细节模拟程度不高对于飘雪的模拟,2004年Langer等采用三维逆傅立叶变换对场景图像进行处理,并用一系列二维图像序列重建出下雪的场景,但该方法实际上是一种图像处理的方法,真实感不强。

2006年Ingar Saltvik等人采用平行算法综合模拟积雪与飘雪场景,以期达到实时快速模拟的目的,但真实性上不能保证在国内研究方面,2003年王润杰等人在分析粒子系统的基础上,提出了一种模拟雨雪的实时算法,但是该算法所使用的雪粒子运动方程还相对简单2004年王长波采用物理模型的方法,对经典的Boltzmann方程进行离散,建立了基于微观动力学的三维风场模型,并在综合考虑风雪交互作用的基础上,给出了风对雪的传输、侵蚀机理及雪的沉积规则,并经过适当的简化加速,实时地绘制出不同大小、不同方向风速下真实感的风雪场景2005年徐立明等人在分析粒子系统实现原理的基础上,基于OpenGL提出了一种在大型场景漫游系统中实时模拟雨、雪的方法2005年陈蕾等人根据飞行模拟实际的视景需求,简化了数学计算来模拟飘雪,并且引入碰撞检测模拟粒子间的碰撞,取得很好效果,不过它只限于在飞行模拟器中实现2008年陈华杰等人提出了一种新的应用于大规模场景的雨雪模拟实时算法,该算法的基本思想是结合粒子系统,根据人体视觉深度原理,采用LOD (Level ofDetail)技术,根据粒子与观测点的距离对雨雪的密度进行分级,并对粒子发射器进行优化,提高了粒子的利用效率,从而达到高效仿真的效果。

此外还有其他一些学者对雨雪场景的模拟做了不少工作在虚拟现实领域里基于粒子系统模型的实时模拟方法中,真实性和实时性问题一直是研究者们研究的重点和难点,如何以粒子系统基本算法来构造复杂物体并逼真的对其进行实时渲染是虚拟现实技术研究的新课题本发明因此而来发明内容本发明目的在于提供一种基于粒子系统模型进行实时模拟雪花沉积的方法,解决了现有技术中计算机模拟雪花真实感和实时性不能同时具备等问题为了解决现有技术中的这些问题,本发明提供的技术方案是—种基于粒子系统模型进行实时模拟雪花沉积的方法,其特征在于所述方法通过将雪花粒子分为计算机模拟的飘雪粒子和计算机模拟的积雪粒子,所述方法包括以下步骤( I)开始雪花沉积模拟时,通过计算机模拟的飘雪粒子模型构建绘制飘雪粒子,所述飘雪粒子从随机高度负责循环飘落;(2)当飘雪粒子下落到距离计算机模拟的场景地面的预 定高度时,通过计算机模拟的积雪粒子模型负责接受该飘雪粒子的坐标信息,并在该坐标位置通过计算机绘制成新的积雪粒子;(3)已绘制的积雪粒子在计算机模拟的场景地面上实现点沉积和面沉积优选的,所述方法中飘雪粒子的产生通过随机函数产生,所述随机函数产生飘雪粒子的初始位置和初始速度。

优选的,所述方法中飘雪粒子的位置信息为三维坐标信息,通过监测飘雪粒子的高度信息判断飘雪粒子是否下落到距离计算机模拟的场景地面的预定高度内优选的,所述方法中点沉积为当飘雪粒子下落到距离计算机模拟的场景地面的预定高度时,通过计算机模拟的积雪粒子模型在该坐标位置生成新的雪花粒子优选的,所述方法中面沉积为当使用点沉积的方法使得计算机模拟的场景地面局部区域上堆积的雪花达到预定数量后随机生成成片雪花,并将计算机模拟的场景地面高度增加成片雪花的厚度针对粒子系统模型的真实性与实时性的矛盾问题,本发明提出一种有效实现真实感和实时性的雪花沉积方法本发明将飘雪和积雪分开实现,定义一定数量的雪花粒子,该类粒子被封装到一个雪花粒子类里该部分粒子只负责循环飘落,当其下落到一定高度时(接近地面)由另一个积雪粒子类来接受其坐标信息并在改点绘制一个新的积雪粒子,而飘雪粒子回到一个随机高度,继续下落相对于现有技术中的方案,本发明的优点是本发明技术方案同时提高了计算机模拟雪花场景时的实时性和真实性,本方法将传统中一些比较常用的粒子属性(比如位置,速度)拿出来单独封装成一个类即雪花粒子类,操作简单方便传统的粒子系统方法,需针对不同特效类型的粒子进行很多次内存操作。

本方法增强了真实感,通过飘雪粒子的坐标变换来反映风速风向和重力场对雪花飘落的影响,具有很强的真实感下面结合附图及实施例对本发明作进一步描述图I为基于粒子系统模型进行实时模拟雪花沉积的方法的飘雪粒子构建的流程示意图图2为基于粒子系统模型进行实时模拟雪花沉积的方法的积雪粒子构建的流程示意图具体实施例方式以下结合具体实施例对上述方案做进一步说明应理解,这些实施例是用于说明本发明而不限于限制本发明的范围实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件实施例如图I所示,本实施例基于粒子系统模型进行实时模拟雪花沉积的方法,通过将雪花粒子分为计算机模拟的飘雪粒子和计算机模拟的积雪粒子,所述方法包括以下步骤( I)开始雪花沉积模拟时,通过计算机模拟的飘雪粒子模型构建绘制飘雪粒子,所述飘雪粒子从随机高度负责循环飘落;(2)当飘雪粒子下落到距离计算机模拟的场景地面的预定高度时,通过计算机模拟的积雪粒子模型负责接受该飘雪粒子的坐标信息,并在该坐标位置通过计算机绘制成新 的积雪粒子;(3)已绘制的积雪粒子在计算机模拟的场景地面上实现点沉积和面沉积飘雪粒子的产生通过随机函数产生,所述随机函数产生飘雪粒子的初始位置和初始速度。

飘雪粒子的位置信息为三维坐标信息,通过监测飘雪粒子的高度信息判断飘雪粒子是否下落到距离计算机模拟的场景地面的预定高度内点沉积为当飘雪粒子下落到距离计算机模拟的场景地面的预定高度时,通过计算机模拟的积雪粒子模型在该坐标位置生成新的雪花粒子面沉积为当使用点沉积的方法使得计算机模拟的场景地面局部区域上堆积的雪花达到预定数量后随机生成成片雪花,并将计算机模拟的场景地面高度增加成片雪花的厚度具体进行模拟实现时,具体采用如下的步骤进行一、飘雪过程描述如下(I)初始化一定数量的飘雪粒子,雪花的产生是一个随机过程,该过程由随机函数来完成如采用c语言时,可以采用的飘雪粒子结构体如下struct Snow{float x;float y;float z;float speed;};Snow R [20000];飘雪粒子模型的飘雪粒子R[i]的初始化位置(x,y, z)及速度(speed)描述如下R[i]. X= (rand O %10000-5000) /50. O ;R[i]. z=(rand O %10000-5000)/50. O ;R[i] · y=0. 001* (rand O %1000) * (rand O %16_5);R[i] · speed=rand () %200。

2)飘雪粒子在下落过程中受到风力,重力,浮力等的影响,本实施例只考虑重力和风力的作用其中风力作用体现在雪花运动时X轴和z轴的坐标变化,具体实现方法如下R[i]. x+=m_EastToWest*0·01;R[i]. z+=m_SouthToNorth*0· 01;而重力作用则体现在I轴的坐标变化,具体实现方法如下R[i]. speed=randO%10*(m_Grave)*0. 05;//m_Grave 指重力加速度R[i]· y-=R[i]· speed;(3)当飘雪粒子下落到一定的高度,即R[i].y小于一定的值后,记录该粒子的位置R[j]. xl=R[i]. X;R[j].yl=R[i].y;R[j]. zl=R[i]. Z0(4)当飘雪粒子下落到一定高度(下落到地面),坐标被记录下来之后,再让该粒子回到一个随机高度继续下落,不断循环R[i], y=20;R[i], x=(rand()%10000-5000)/50. O;R[i]. z= (rand () %10000-5000) /50. 0如采用c语言时,可以采用的积雪粒子结构体如下struct static_Snow{float x;float y;float z;float speed;};static_Snow R[20000];其中float x, float y, float z,分别指雪花的 x, y, z 轴的坐标,float speed 指雪花下落速度。

二、积雪过程描述如下(I)点沉积每当有一个飘雪粒子下落到地面且其坐标被记录下之后,便生成一个新的雪花粒子,初始位置即为记录下的坐标,速度为O2)面沉积当使用点沉积的方法使得地面上堆积的雪花达到一定数量之后便采用面沉积的方法该方法是随机生成成片雪花,并适时改变雪花堆积的高度当采用如c语言的结构体形式构建飘雪粒子和积雪粒子时,本方法实施时可分为飘雪和积雪两个部分,其具体步骤如下A.飘雪部分i.初始化雪花粒子,雪花粒子结构体有X,Y, Z坐标及初始速度ii.雪花粒子运动受到风速风向和重力场大小的影响,具体表现在坐标的变化上,重力场集中表现在Y轴坐标的变化上,X,Z轴则和风速风向紧密相关iii.当雪花落到地面上时,将Y轴坐标改变使其重新到空中继续下落,而X,Z轴则随机生成,周而复始B.积雪部分分为点沉积和面沉积i.当雪花落到地面时,通过循环判断该点之前有无雪花若无则通过一个积雪粒子结构体数组记录它的相应坐标,同时在该点绘制雪花粒子当地面上雪花粒子数达到指定数目时,则进入面沉积ii.面沉积同样采用一个雪花粒子结构体,当落到地面的雪花坐标与之前沉积的雪花粒子坐标相同时,则将该点的Y轴坐标加O. 5赋给该结构体数组,同时绘制雪花面进行计算机模拟时,可以假定飘雪部分定义20000个雪花粒子循环使用,地面上 则定义100000个粒子记录点沉积的雪花,当达到100000个时,进行面沉积,定义2000个粒子绘制雪花面。

算法伪代码如下for(int i=0;i权利要求1.一种基于粒子系统模型进行实时模拟雪花沉积的方法,其特征在于所述方法通过将雪花粒子分为计算机模拟的飘雪粒子和计算机模拟的积雪粒子,所述方法包括以下步骤 (1)开始雪花沉积模拟时,通过计算机模拟的飘雪粒子模型构建绘制飘雪粒子,所述飘雪粒子从随机高度负责循环飘落; (2)当飘雪粒子下落到距离计算机模拟的场景地面的预定高度时,通过计算机模拟的积雪粒子模型负责接受该飘雪粒子的坐标信息,并在该坐标位置通过计算机绘制成新的积雪粒子; (3)已绘制的积雪粒子在计算机模拟的场景地面上实现点沉积和面沉积2.根据权利要求I所述的方法,其特征在于所述方法中飘雪粒子的产生通过随机函数产生,所述随机函数产生飘雪粒子的初始位置和初始速度3.根据权利要求I所述的方法,其特征在于所述方法中飘雪粒子的位置信息为三维坐标信息,通过监测飘雪粒子的高度信息判断飘雪粒子是否下落到距离计算机模拟的场景地面的预定高度内4.根据权利要求I所述的方法,其特征在于所述方法中点沉积为当飘雪粒子下落到距离计算机模拟的场景地面的预定高度时,通过计算机模拟的积雪粒子模型在该坐标位置生成新的雪花粒子。

下载提示
相似文档
正为您匹配相似的精品文档