筆者介紹:姜雪偉,IT公司技術(shù)合伙人,IT高級(jí)講師,CSDN社區(qū)專(zhuān)家,特邀編輯,暢銷(xiāo)書(shū)作者,國(guó)家專(zhuān)利發(fā)明人;已出版書(shū)籍:《手把手教你架構(gòu)3D游戲引擎》電子工業(yè)出版社和《Unity3D實(shí)戰(zhàn)核心技術(shù)詳解》電子工業(yè)出版社等。
游戲中如果沒(méi)有殊效的渲染,游戲的品質(zhì)相對(duì)來(lái)講就比較差了,殊效在項(xiàng)目中占的比重是非常大的。不論是游戲還是虛擬現(xiàn)實(shí)都會(huì)有粒子殊效,特別是3D粒子殊效,場(chǎng)景的渲染表現(xiàn)都是通過(guò)粒子殊效和材質(zhì)渲染實(shí)現(xiàn)的。在MMOARPG或是MMORPG等網(wǎng)絡(luò)游戲中,場(chǎng)景或角色上都會(huì)掛接殊效,Cocos2D-x引擎使用的殊效是開(kāi)源的Particle Universe粒子殊效系統(tǒng),使用Particle Universe開(kāi)發(fā)的游戲市面上也是有很多的,比如著名的火把之光游戲也是使用該粒子殊效系統(tǒng),大名鼎鼎的開(kāi)源Ogre引擎一樣使用的也是該粒子殊效,Particle Universe編輯器代碼所在地址:
http://www.ogre3d.org/tikiwiki/Particle+Universe+pluginParticle Universe 粒子系統(tǒng)由于開(kāi)源,很多自研發(fā)引擎也是基于或參考該粒子引擎延伸成自己的殊效系統(tǒng)。利用Particle Universe編輯器制作的殊效在游戲中的效果以下圖:
殊效的表現(xiàn)是在“火把之光”游戲中顯示效果,筆者自己研發(fā)的引擎也是基于該殊效,自研引擎制作的游戲,殊效表現(xiàn)效果以下圖:
所以掌握該粒子殊效可以有助于開(kāi)發(fā)者更好的理解粒子殊效,通過(guò)研究它的源代碼可以在此基礎(chǔ)上繼續(xù)優(yōu)化改進(jìn),也能夠重新封裝延伸出自己的殊效系統(tǒng),學(xué)習(xí)粒子殊效系統(tǒng)先從粒子殊效的架構(gòu)說(shuō)起。
粒子殊效最基本的是粒子的繪制生成,消失。每一個(gè)粒子都離不開(kāi)這個(gè)最基本的準(zhǔn)則,只是在此基礎(chǔ)上進(jìn)行了諸多變換。熟習(xí)1個(gè)系統(tǒng)先從其架構(gòu)著手,Cocos2d-x的粒子系統(tǒng)是從ParticleUniverse粒子系統(tǒng)修改而來(lái),粒子的主題框架和底層代碼還是保持之前的,1個(gè)粒子有哪些部份組成?先從粒子的編輯器講起。下圖是Particle Universe粒子編輯器的粒子運(yùn)行界面以下圖: Particle Universe編輯器,它主要分為4部份:左上部份是殊效資源目錄,左下部份是各個(gè)殊效模塊的參數(shù)設(shè)置,右上部份是殊效的編輯制作結(jié)點(diǎn),右下部份是制作的殊效顯示窗口。利用ParticleUniverse工具制作的粒子殊效主要包括以下幾個(gè)部份以下圖:
介紹1下,粒子架構(gòu)圖各個(gè)組件,System Component系統(tǒng)組件是最高層次的組件,包括:Emitter、Affector、Observer等。系統(tǒng)組件是創(chuàng)建、顯示、影響粒子所需組件的容器。Technique Component技術(shù)組件是處理1個(gè)系統(tǒng)中的不同粒子紋理。每一個(gè)技術(shù)都有自己的渲染器,多種技術(shù)相結(jié)合成1個(gè)系統(tǒng)就能夠制作出1個(gè)復(fù)雜的粒子系統(tǒng)。RendererComponet渲染器組件決定了粒子的外觀,EmitterComponent發(fā)射器組件作用是負(fù)責(zé)發(fā)射粒子,Affector Component影響器組件的作用是產(chǎn)生對(duì)粒子顆粒的影響,ObserverComponent視察者組件用于視察粒子是不是產(chǎn)生了某些條件或事件,換句話說(shuō)就是粒子是不是過(guò)期需要燒毀等。這些組件對(duì)粒子系統(tǒng)是必不可少的,讀者1定要熟練掌握。殊效粒子生成了后,接下來(lái)做的事情是殊效的渲染。