摘要:
14.3.2 例子程序:焰火系统 本例程实现了一个焰火例子系统,运行效果如图14.3所示: 火系统类定义如下: class cFirework : public cParticleSystem { public: cFirework(D3DXVECTOR3* origin, int num_particles); virtual void rese... 阅读全文
posted @ 2008-04-04 20:13
至尊王者
阅读(1013)
评论(1)
推荐(0)
摘要:
14.3.3 例子程序:粒子枪 本例程实现了一个粒子枪系统,运行效果如图14.4所示: 下面是粒子枪系统的定义: class cParticleGun : public cParticleSystem { private: cCamera* m_camera; public: cParticleGun(cCamera* camera); ... 阅读全文
posted @ 2008-04-04 20:09
至尊王者
阅读(971)
评论(0)
推荐(0)
摘要:
14.3具体的粒子系统:雪、火、粒子枪 现在让我们用cParticleSystem类开始一个具体的粒子系统,为了说明用意,这些系统的设计很简单,没有用到cParticleSystem类所提供的所有灵活性。我们实现雪、火、粒子枪系统。雪系统模拟下落的雪花,火系统模拟看上去像火焰的爆炸,粒子枪系统从照相机位置向对面发射出粒子(用键盘)。14.3.1 例子程序:雪 雪系统类定义如下: clas... 阅读全文
posted @ 2008-04-04 20:07
至尊王者
阅读(962)
评论(0)
推荐(0)
摘要:
14.2.1 绘制粒子系统 因为粒子系统是动态的,在每一个帧中我们需要更新系统中的粒子,对于渲染粒子系统的一种直观但效率低下的方法如下: 创建一个足够大的顶点缓存保存最大数量的粒子。 每一帧里执行: A. 更新所有粒子。 B. COPY所有活着的粒子到顶点缓存。 C. 绘制顶点缓存。 这个方法正确,不过不是最有效率的。第一,顶点缓冲必须足够大以保存... 阅读全文
posted @ 2008-04-04 20:07
至尊王者
阅读(1130)
评论(0)
推荐(0)
摘要:
14.2粒子系统的组成 粒子系统是粒子的集合,用来保存和显示这些粒子。粒子系统维护所有粒子的全部属性,影响系统中的所有粒子:粒子的尺寸,起始的位置及应用在粒子上的纹理等。粒子系统的方法负责更新、显示、杀死和创建粒子。 虽然不同的具体(与抽象是相对的)粒子系统有不同的行为,我们归纳并找到一些所有的粒子系统共有的基本属性,我们把这些公共的属性放到一个抽象的cParticleSystem基类,它是我... 阅读全文
posted @ 2008-04-04 20:06
至尊王者
阅读(1090)
评论(0)
推荐(0)
摘要:
许多自然现象是由很多小的小颗粒组成的,它们有相似的行为。(例如,雪花落下,闪烁的火焰,冲出枪管的“子弹”),粒子系统用来模拟这种现象。 14.1 粒子和点精灵(Point Sprite) 粒子是一个很小的对象,它通常用来模拟数学中的一个点。点元是用来显示粒子的很好的方案,可是点元被光栅化成一个简单的像素。这没给我们多少灵活性,因为我们想有各种大小不同的粒子,并且把整个纹理平滑映射到这些粒子上。... 阅读全文
posted @ 2008-04-04 20:05
至尊王者
阅读(1988)
评论(0)
推荐(0)
浙公网安备 33010602011771号