特效系统包含了下面几个部分这些组合成一个sfxkg3dsfx在游戏源码剑网gfx2.pdfVIP

特效系统包含了下面几个部分这些组合成一个sfxkg3dsfx在游戏源码剑网gfx2.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

特效系统包含了下面的几个部分,所有的这些组合成了一个特效(*.SFX)KG3DSFX。在

外部一个特效是看做一个模型。

a)ParticleSystem

粒子系统包含了下面的元素:

i.Particle

classKG3DSFXParticle

[KG3DSFXParticle.h,KG3DSFXParticle.cpp]

ii.Launcher

classKG3DSFXParticleLauncher

[KG3DSFXParticleLauncher.h,KG3DSFXParticleLauncher.cpp]

iii.ParticleContainer

classKG3DSFXParticleContainer

[KG3DSFXParticleContainer.h,KG3DSFXParticleContainer.cpp]

iv.ForceField

classKG3DSFXParticleForceField

[KG3DSFXParticleForceField.h,KG3DSFXParticleForceField.cpp]

v.ParticleKind

classKG3DSFXParticleLifeTimeLine

[KG3DSFXParticleLifeTimeLine.h,KG3DSFXParticleLifeTimeLine.cpp]

粒子本身是有一些属性的,比如:外观,物理参数,渲染模式,绑定关系等等。

这些属性大体上可以分成两类:一部分是私有的,一部分是公有的。公有的部分定义

在了ParticleKind里面。私有的部分定义在每个粒子自己的类里。

ParticleKind由一系列的时间条组成。时间条就是关键帧序列。这里有很多序列,

比如:宽,高等。

粒子在其生命期内从这里面取得数据。里面有个比较特殊的处理,注释也写了,

就是那个m_nTextureFrameTimeLine如果是空的话,那么就是随机取。

粒子发射器在特效播放时,按照内部定义的时间条来发射粒子,比如:发射数量,

方向,生命,速度等等。发射器有个几形状,不同的形状对粒子发射的方向有影响。

发射出的粒子放到了粒子容器里,统一的更新,绘制。下面说明一下那个更新模式,

enumSFX_PARTICLE_UPDATE_MODE

{

SFX_PUM_FOLLOW_SFX,

SFX_PUM_SELF,

};

第一个的话,是说每个粒子的当前帧和特效的当前帧是一样的,也就是所有的粒

子都一样。第二个的话,是说每个粒子各不相同,自己保存自己的。

力场定义了一个3D向量的关键帧序列,在粒子更新的时候,通过这个数据去修改

粒子的速度。粒子的什么位置,速度,都是世界坐标的,所以像力场也就是针对世界

坐标系来处理的了。

一个特效里的所有粒子在渲染的时候会放到一个队列里ParticleContainer。然后这

个模块会对粒子进行按纹理和渲染模式的排序,然后统一进行绘制。事实上,进一步

的优化,需要把整个游戏世界的粒子进行统一,而不是现在的每个特效进。

b)Billboard

ClassKG3DSFXBillboard

[KG3DSFXBillboard.h,KG3DSFXBillboard.cpp]

每个公告板包含几个属性,比如宽高,颜色等,纹理可以有两层,第二层是Alpha

层。这里没有把公告板的纹理和粒子系统统一处理是考虑到公告板使用比较少,没必

要和粒子整体做优化。

文档评论(0)

honglajiao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档