Cocos2d-x 3.x 图形学渲染系列十二

来源:互联网 发布:js中获取元素的方法 编辑:程序博客网 时间:2024/05/01 07:11

笔者介绍:姜雪伟IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

游戏中如果没有特效的渲染,游戏的品质相对来说就比较差了,特效在项目中占的比重是非常大的。不论是游戏还是虚拟现实都会有粒子特效,尤其是3D子特效,场景的渲染表现都是通过粒子特效以及材质渲染实现的。在MMOARPG或者是MMORPG等网络游戏中,场景或者角色上都会挂接特效,Cocos2D-x引擎使用的特效是开源的Particle Universe粒子特效系统,使用Particle Universe开发的游戏市面上也是有很多的,比如著名的火炬之光游戏也是使用该粒子特效系统,大名鼎鼎的开源Ogre引擎同样使用的也是该粒子特效,Particle Universe编辑器代码所在地址:

 http://www.ogre3d.org/tikiwiki/Particle+Universe+pluginParticle Universe 

   粒子系统由于开源,很多自研发引擎也是基于或者参考该粒子引擎延伸成自己的特效系统。利用Particle Universe编辑器制作的特效在游戏中的效果如下图:


特效的表现是在火炬之光游戏中显示效果,笔者自己研发的引擎也是基于该特效,自研引擎制作的游戏,特效表现效果如下图:



所以掌握该粒子特效可以有助于开发者更好的理解粒子特效,通过研究它的源代码可以在此基础上继续优化改进,也可以重新封装延伸出自己的特效系统,学习粒子特效系统先从粒子特效的架构说起。

粒子特效最基本的是粒子的绘制生成,消失。每个粒子都离不开这个最基本的准则,只是在此基础上进行了诸多变换。熟悉一个系统先从其架构着手,Cocos2d-x的粒子系统是从ParticleUniverse粒子系统修改而来,粒子的主题框架以及底层代码还是维持以前的,一个粒子有哪些部分组成?先从粒子的编辑器讲起。下图是Particle Universe粒子编辑器的粒子运行界面如下图:


Particle Universe编辑器,它主要分为四部分:左上部分是特效资源目录,左下部分是各个特效模块的参数设置,右上部分是特效的编辑制作结点,右下部分是制作的特效显示窗口。利用ParticleUniverse具制作的粒子特效主要包括以下几个部分如下图:


介绍一下,粒子架构图各个组件,System Component系统组件是最高层次的组件,包含:Emitter、Affector、Observer等。系统组件是创建、显示、影响粒子所需组件的容器。Technique Component技术组件是处理一个系统中的不同粒子纹理。每个技术都有自己的渲染器,多种技术相结合成一个系统就可以制作出一个复杂的粒子系统。RendererComponet渲染器组件决定了粒子的外观,EmitterComponent发射器组件作用是负责发射粒子,Affector Component影响器组件的作用是产生对粒子颗粒的影响,ObserverComponent观察者组件用于观察粒子是否发生了某些条件或者事件,换句话说就是粒子是否过期需要销毁等。这些组件对于粒子系统是必不可少的,读者一定要熟练掌握。特效粒子生成了后,接下来做的事情是特效的渲染。


0 0