- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
粒子系统在2D特效中的应用一
粒子系统在2D特效中的应用一
粒子系统是啥西?小军曰:所谓的粒子系统,就是将我们看到的物体运动和自然现象,用一系列运动的粒子来描述,再将这些粒子运动的轨迹映射到显示屏上,然后呢?就是我们在显屏上看到的物体运动和自然现象的模拟效果了。 利用粒子系统我们可以在屏幕中表现诸多的特殊效果,如:焰火、火苗、落叶、雪花飞舞等。不怕做不到,就怕想不到。只要你的想象力足够丰富,你可以创造出意想不到的奇迹来。 好,开始切入我们这章的主题,粒子系统应用的关键在于如何描述粒子的运动轨迹,也就是构造粒子的运动函数。函数选择的恰当与否,决定效果的逼真程度。其次坐标系的选定(就是视角啦)也有一定的关系,视角不同,看到的效果自然不一样了。在这章里,我会用很多的实例来解释如何应用粒子系统来实现各种特效。接下来我们要实现的第一种特效就是------ 运动图标(一) 图标在这里我们泛指所有的位图,如团体标识、文字等图象。这里要实现的是让图标从远处迎面快速飞来这么一种效果。下面的同学别起哄,我要给你们演示的不是Windows的飞行窗口,它太缺乏速度感了,你们要感受的将是迎面碰撞的效果。下面我们一步一步来实现它: 第一步:构造粒子 一幅位图可看作是现实世界中的一张相片,我们看到的是它(位图)在与我们视线垂直的平面(显屏)上的投影。因此可用{长*宽}个单元的数组来描述,每个单元是一个点的颜色,画到屏幕上之前先计算好每个点在显屏上投影的位置就可以了。但我们凡事都要首先考虑一下效率。因为我们的图标一般都会设一个ColorKey,也就是透明色,位图中与颜色值与ColorKey相同的点都不需要画到显屏上,该颜色在屏幕上看起来就成了透明的。而我们计算各点运动轨迹的计算量可能都不会小,且透明色在整个位图中占的比例也一般较大,大量透明点参与运算势必影响程序的整体效率。所以我们要采取内存换效率的办法,牺牲少量的内存,争取更高的执行效率。具体办法是将数组中的透明点拿走,再给非透明点增加一些位置信息。 粒子系的生成过程是:先计算非透明点总数,再为这些点申请内存,最后读入每个的位置、颜色信息。 第二步:计算粒子在屏幕上的投影位置 我们这里图标是沿视线方向运动的,所以可让坐标系的Z轴沿视线方向,X、Y轴与屏幕的X、Y轴相同即可。目标从远处移近时,眼睛看到是从小到大,不断加速变大的物体形象。所以可用一个比例因子来描述这种变化。将图标的运动分成几个时段,依次在每个时段加大比例因子的增量,粒子的投影坐标就取其实际坐标(也就是其对应于原始位图的点坐标)与比例因子之积就行了。 第三步:画粒子 第四步:重复第二、三步过程 以下代码应该很容易读懂: // Code in Particles.h class CParticles { private: struct PARTICLE{ int X0, Y0; // 点在位图中的坐标 DWORD dwColor; int X, Y; // 点投影到屏幕上的坐标 }; public: CParticles(); virtual ~CParticles(); BOOL Create(CDDSurface *pDds); VOID ServeParticles(); VOID Draw(LPDDSURFACEDESC2 pDdsd, int nX=0, int nY=0); protected: DWORD m_dwCnt; PARTICLE *m_pPtc; int m_nScale; }; // Code in Particles.cpp // 生成粒子系。方便起见,取位图左上角第一个点的颜色值为ColorKey BOOL CParticles::Create(CDDSurface *pDds) { DWORD dwColorKey; DWORD dwBPP; DWORD dwMask; DDSURFACEDESC2 ddsd; ddsd.dwSize = sizeof(DDSURFACEDESC2); if (pDds-Lock(ddsd) != DD_OK) return FALSE; dwBPP = ddsd.ddpfPixelFormat.dwRGBBitCount3; // Bytes per pixel switch (dwBPP) { case 1: dwMask = 0xFF; break; case 2: dwMask = 0xFFFF; break; case 3: dwMask = 0xFFFFFF;
您可能关注的文档
- 华星学校安全责任书.doc
- 化学知识点总结(填空版).doc
- 北师大四年级下册思维拓展训练.ppt
- 【Note3.进气系统】.ppt
- 各项电力技术参数.doc
- 品牌的演变.doc
- 周考练习题答案.doc
- 变式讲稿.doc
- 南大考研真题.doc
- 商务礼节美语第19-21期Staycation宅.doc
- GB/T 45128-2025塑料 含水量的测定.pdf
- 《GB/T 45128-2025塑料 含水量的测定》.pdf
- 《GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法》.pdf
- 中国国家标准 GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- 中国国家标准 GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
- 《GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD)》.pdf
- 中国国家标准 GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
最近下载
- 小学四年级下学期科学《控制电路的通断》教学课件.pptx
- 冶金焦代替煅后焦作为阳极焙烧填充料可行性探讨.pdf VIP
- 中华民族共同体概论讲稿专家版《中华民族共同体概论》大讲堂之第一讲:中华民族共同体基础理论。.doc VIP
- 7.2.2 平行线的判定(教学设计)七年级数学下册(人教版2024).pdf
- 贵州师范大学汉语言文学院中国现代文学课件第七章 散文(一).ppt
- (二调)武汉市2025届高中毕业生二月调研考试 数学试卷(含官方答案).pdf
- 雅马哈船外机F115 F130 中文维修手册.pdf VIP
- 消防系统调试的报告.doc
- 雅马哈船外机F200B FL200B中文维修手册.pdf VIP
- DB3502T 161-2024 城市轨道交通工程土建施工监理规程.docx VIP
文档评论(0)