理解粒子系统的基本原理.doc

理解粒子系统的基本原理.doc

ID:50679756

大小:109.30 KB

页数:7页

时间:2020-03-07

理解粒子系统的基本原理.doc_第1页
理解粒子系统的基本原理.doc_第2页
理解粒子系统的基本原理.doc_第3页
理解粒子系统的基本原理.doc_第4页
理解粒子系统的基本原理.doc_第5页
资源描述:

《理解粒子系统的基本原理.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验31.实验目的(1)理解粒子系统的基本原理。(2)学习使用Direct3DAPI编写程序利用粒子系统模拟雨景。2.实验内容和步骤(1)在粒子系统中,把运动的模糊物体看作由有限的具有确定属性的流动粒子所组成的集合,这些粒子以连续或离散的方式充满它所处的空间,并处于不断的运动状态。粒子具有独立性,这里包含两个意思,一是各粒子不与场景中的任何其他物体相交;二是粒子之间不存在相交关系,并且粒子是不可穿透的。(2)粒子系统中的每个粒子都具有一系列属性,如质量、空间位置、外观属性、运动属性、生存期等。在一定的时间周期内,每个粒子都经历新生、活动和消亡3个

2、基本生命历程。在存活期间,每个粒子都始终按一定的方式运动。(3)以下是使用Direct3D利用粒子系统模拟雨景的过程。a、首先定义结构体RainParticle来描述雨点粒子,其中定义了雨点粒子的位置和移动速度。RainParticle结构体定义如下:structRainParticle{floatx,y,z;//位置floatfDspeed;//下降速度};b、定义结构体类型RAINVERTEX用来描述雨顶点格式,RAINVERTEX结构体定义如下:structRAINVERTEX{D3DXVECTOR3vPos;DWORDdwColor;};

3、#defineD3DFVF_RAINVERTEX(D3DFVF_XYZ

4、D3DFVF_DIFFUSE)c、定义雨点数组:#definePARTICLENUM2000RainParticlerain[PARTICLENUM];//雨点粒子数组d、接着定义顶点缓冲和世界矩阵变换的全局变量:LPDIRECT3DVERTEXBUFFER9g_pRainVB;//雨点粒子顶点缓冲区D3DXMATRIXg_matRain;//雨点世界矩阵D3DXVECTOR3g_RainDir;//雨点的下降方向e、在初始化函数InitD3D中创建和填充雨顶点缓冲区:(g_

5、pd3dDevice->CreateVertexBuffer(2*sizeof(RAINVERTEX),0,D3DFVF_RAINVERTEX,D3DPOOL_MANAGED,&g_pRainVB,NULL));//填充雨点顶点缓冲区RAINVERTEX*pRainVertices;g_pRainVB->Lock(0,0,(void**)&pRainVertices,0);pRainVertices[0].vPos=D3DXVECTOR3(1,5,0);pRainVertices[0].dwColor=0xffffffff;pRainVertic

6、es[1].vPos=D3DXVECTOR3(3,1,0);pRainVertices[1].dwColor=0xffffffff;g_pRainVB->Unlock();a、在初始化函数InitD3D中初始化雨点的位置和雨点的下降方向,雨点的位置通过随机数产生,然后通过取余将其x,y坐标控制在(-200,200)范围中,而z值在(0,250)范围中。//计算雨点下降方向g_RainDir=D3DXVECTOR3(3,1,0)-D3DXVECTOR3(1,5,0);D3DXVec3Normalize(&g_RainDir,&g_RainDir);

7、srand((unsigned)time(NULL));//初始化雨点数组for(inti=0;i

8、置://计算每个雨点的当前位置for(inti=0;i200)rain[i].x=-200.0f;if(rain[i].z>300)rain[i].z=float(rand()%400-200);rain[i].x+=rain[i].fDspeed*g_RainDir.x*0.03;rain[i].y+=rain[i].fDspeed*g_RainDir.y*0.03;rain[i].z+=rain[i].fDspeed*

9、g_RainDir.z*0.03;}c、最后再使用旋转矩阵进行平移,将粒子的位置不断更新并绘制和渲染://渲染雨点g_pd3dDevic

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。