DirectX特效--粒子效果ppt课件.ppt

DirectX特效--粒子效果ppt课件.ppt

ID:59420637

大小:261.00 KB

页数:39页

时间:2020-09-19

DirectX特效--粒子效果ppt课件.ppt_第1页
DirectX特效--粒子效果ppt课件.ppt_第2页
DirectX特效--粒子效果ppt课件.ppt_第3页
DirectX特效--粒子效果ppt课件.ppt_第4页
DirectX特效--粒子效果ppt课件.ppt_第5页
资源描述:

《DirectX特效--粒子效果ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络游戏引擎实现专业教程北京汇众益智科技有限公司概述:粒子系统介绍简单的粒子系统的实现重点:粒子系统框架代码难点:粒子系统参数设定作用:很多自然现象都可以由具有相似风格运行的小粒子集合来模拟,粒子系统就是专门来产生、控制以及渲染这些粒子的系统。例如:1)火把上面的火苗2)汽车排出的尾气3)一群狂怒的异形生物攻击时的编队4)成群或者成串的物体5)雨点和雪花6)运动效果,如击起的草皮碎片。粒子系统一、粒子和点精灵(ParticlesandPointSprites)一个粒子是一个非常小的物体,通常被模拟为数学上的一个点。点原(pointp

2、rimitive)是渲染粒子的最根本的方法。但是点原被光栅化为一个像素。这样画出来的粒子没有弹性,都是固定的大小,为了让粒子实现不同的尺寸,Direct3D引入了一个特殊的点原叫做点精灵(pointsprite)粒子最基本的点格式是:位置和颜色。声明如下:structParticle{D3DXVECTOR3_position;D3DCOLOR_color;staticconstDWORDFVF;};constDWORDParticle::FVF=D3DFVF_XYZ

3、D3DFVF_DIFFUSE;可以加入一个浮点变量到粒子结构中以指

4、定粒子的尺寸,同时必须加入一个D3DFVF_PSIZE标志到自由顶点格式中。这样每个像素都可以设置特定的大小尺寸structParticle{D3DXVECTOR3_position;D3DCOLOR_color;float_size;staticconstDWORDFVF;};constDWORDParticle::FVF=D3DFVFXYZ

5、D3DFVFDIFFUSE

6、D3DFVF_PSIZE;但是,很多显卡不支持设置粒子的尺寸,所以一般不这样设置点的尺寸。如果非要使用,必须先检查D3DCAPS9结构的FVFCaps成员的D3D

7、FVFCAPS_PSIZE位是否为1,如果是1,就可以使用以上的顶点格式。粒子的尺寸大小一般用渲染状态控制点精灵(PointSprite)渲染状态D3DRS_POINTSPRITEENABLE—一个Boolean值.默认值是false.指定为true,说明定义的点为点精灵。指定为false,就不是点精灵device->SetRenderState(D3DRS_POINTSPRITEENABLE,true);D3DRS_POINTSCALEENABLE—一个Boolean值.默认值是false.指定为True,表示点的尺寸将被解释为视

8、图空间单元。视图空间单元仅仅取决于摄像机空间中的3D点。特点是点精灵随着离摄像机距离的增大,点精灵将被缩放指定false,表示点的尺寸将被解释为屏幕空间单元。屏幕空间单元是屏幕上的像素单元。如果设置点精灵的尺寸为3,点精灵在屏幕空间中将是3X3像素的。device->SetRenderState(D3DRS_POINTSCALEENABLE,true);D3DRS_POINTSIZE—用于指定点精灵的尺寸。这个值既用于视图空间也用于屏幕空间上表示点精灵的尺寸,这取决于D3DRS_POINTSCALEENABLE的状态是如何设定的。下

9、面的代码片断设定点尺寸为2.5个单位:device->SetRenderState(D3DRS_POINTSIZE,d3d::FtoDw(2.5f));D3DRS_POINTSIZE_MIN—指定精灵的最小尺寸下面的例子设置最小值为0.2:device->SetRenderState(D3DRS_POINTSIZE_MIN,3d::FtoDw(0.2f));D3DRS_POINTSIZE_MAX—指定精灵的最大尺寸下面的例子设置最大值为0.2:device->SetRenderState(D3DRS_POINTSIZE_MAX,3d

10、::FtoDw(5.0f));D3DRS_POINTSCALE_A,D3DRS_POINTSCALE_B,D3DRS_POINTSCALE_C这三个常量控制点精灵如何随距离的变化来改变尺寸(距离是点精灵到摄像机的距离)下面的代码设置点精灵的距离常量:device->SetRenderState(D3DRS_POINTSCALE_A,d3d::FtoDw(0.0f));device->SetRenderState(D3DRS_POINTSCALE_B,d3d::FtoDw(0.0f));device->SetRenderState(D

11、3DRS_POINTSCALE_C,d3d::FtoDw(1.0f));Direct3D使用如下的公式计算基于距离和这些常量的点的最终尺寸:粒子属性(ParticlesAttributes)一个粒子除了包括位置和颜色外,还有很多其它属

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

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

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