- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Part Ⅲ Direct3D的应用 谢伟亮 Mage feiyurainy@163.com 六 粒子系统 许多自然现象都可以用粒子来模拟 粒子系统负责生成,控制及旋转粒子 主要目标 学习粒子的属性,以及怎样在Direct3D中描述粒子 2. 设计一个灵活的粒子系统基类 3. 建立三个具体的粒子系统 粒子 particle 粒子是一个很小的物体,数学上它经常被当作是一个点 在程序中模拟粒子的方法有多种,以前最常用的是公告板 BillBoard 公告板的缺点 每个公告板都要由四个顶点来表示 要在程序中控制它的方向 所以,我们要用别的方法 点精灵 Point sprite Direct3D8.0引入 最适合于实现粒子效果 点精灵的优点 可以贴上纹理 2. 可以改变大小 3. 只需用一个顶点来描述 SDK中的点精灵示例 粒子顶点结构 struct Particle { D3DXVECTOR3 _position; D3DCOLOR _color; static const DWORD FVF; }; const DWORD Particle::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE; 点精灵的相关渲染状态 D3DRS_POINTSPRITEENABLE 默认为false 如果为true,整个当前纹理会映射到点精灵上 如果为false,纹理元素由纹理坐标决定 D3DRS_POINTSCALEENABLE 默认为false 如果为true,点精灵就有近大远小的效果 点精灵的大小是在视图空间中定义 D3DRS_POINTSIZE float,决定了点精灵的大小 SetRenderState (D3DRS_POINTSIZE, *((DWORD*)PointSize) D3DRS_POINTSIZE_MIN float D3DRS_POINTSIZE_MAX float 决定点精灵的尺寸的最大值和最小值 D3DRS_POINTSCALE_A D3DRS_POINTSCALE_B float D3DRS_POINTSCALE_C 粒子的属性 struct Attribute { D3DXVECTOR3 _position; D3DXVECTOR3 _velocity; D3DXVECTOR3 _acceleration; float _lifeTime; float _age; D3DXCOLOR _color; D3DXCOLOR _colorFade; bool _isAlive; }; 代码片断 If ( partical.isAlive ) // 判断粒子是否存活 { ago += 0.1; if ( ago = lifetime ) isAlive == false; // 如果过了生命期,就设置它的alive状态为false,下次就不会进入这个if了 ….// 改变它的颜色,位置等与渲染相关的属性 DrawPartical(); } 为什么要定义两个结构 Particle -- 保存只与渲染相关的状态 Attribute -- 保存粒子的逻辑属性 避免顶点缓冲过大 粒子系统 粒子系统的作用: 增加,删除粒子 初始化粒子 更新粒子状态 渲染粒子 创建粒子顶点缓冲区 CreateVertexBuffer ( _vbSize * sizeof(Particle), D3DUSAGE_DYNAMIC | D3DUSAGE_POINTS | D3DUSAGE_WRITEONLY, Particle::FVF, D3DPOOL_DEFAULT, _vb, 0 ); 粒子系统的渲染 最笨的方法: 创建一个足以装下所有粒子的顶点缓冲,在每一帧中进行如下操作: A、更新所有粒子的状态 B、拷贝所有仍存活的粒子到顶点缓冲 C、渲染顶点缓冲 缺点: 1. 顶点缓冲要足够大 2. CPU与显卡不能并行工作 正确的渲染方法 1. 创建一个限定大小的顶点缓冲区(2000个顶点) 2. 更新所有顶点的状态 拷贝一批顶点到顶点缓冲中(500个顶点) 渲染500个顶点 在渲染的过程中,再往顶点缓冲区中填充500个顶点 渲染500个顶点 ….. Part Ⅲ Direct3D的应用 六 粒子系统 FINISH 谢谢,再见 * *
您可能关注的文档
- 建筑装饰表现技法 马克笔单体表现 马克笔表现花卉植物线稿.ppt
- 建筑装饰材料、构造与施工 其他 玻璃与石材相接节点构造.ppt
- 建筑装饰材料、构造与施工 其他 木饰面与墙纸收口节点构造(1).ppt
- 建筑装饰材料、构造与施工 其他 墙面木饰面构造做法(2).ppt
- 建筑装饰材料、构造与施工 其他 石材暗门、卫生间石材工艺做法.ppt
- 建筑装饰工程计量与计价 工程造价软件的应用 第四章 造价软件.ppt
- 建筑装饰工程预算 2.其他材料面层工程计价 楼地面装饰工程——其他材料面层工程计价.pptx
- 建筑装饰设计 (办公空间) 任务一 小型办公空间案例分析 建筑设计公司办公设计(一).pptx
- 建筑装饰施工图绘制 施工图案例 施工图案例-首层卫生间.pptx
- 建筑装饰施工图绘制 施工图案例 施工图案例-一层门厅大样图.ppt
- 交互式媒体设计 2.3.5情景设计 情景法-案例.ppt
- 交互式媒体设计 4.2.1低保真原型 低保真原型3.ppt
- 交互式媒体设计 4.2.1低保真原型 低保真原型4.ppt
- 交互数字内容设计 H5设计注意事项和规范 3.H5设计注意事项和规范.ppt
- 交换技术与设备 电话网的基本组成 1-1-4 程控交换机的发展动向与趋势.ppt
- 交换技术与设备 概述 6-2-1 程控用户交换机的中继方式(一).ppt
- 交换技术与设备 任务执行 2-6-1 任务执行和输出处理(一).ppt
- 交换技术与设备 无阻塞交换网络概念 3-2-2 STS型交换网络(一).ppt
- 交换技术与设备 用户状态信令 5-2-1 用户信令(一).ppt
- 胶版印刷及故障排除 胶版印刷及故障排除 项目一任务二(9)世界品牌小森胶印机.pptx
原创力文档


文档评论(0)