張新雄 李慶楊
(海軍陸戰(zhàn)學(xué)院 廣州 510430)
2009年,特效制作的3D電影《阿凡達(dá)》像一枚重磅炸彈,猝不及防地沖擊了每個(gè)人的眼球。據(jù)悉,全球票房收入高達(dá)27億美元,全片有60%的鏡頭是由CGI(計(jì)算機(jī)生成圖像)拍攝的。不管是動(dòng)作、表情逼真的人物及其他動(dòng)物,還是栩栩如生的模擬植物,抑或是惟妙惟肖的自然景象如瀑布、浮云、火焰、極光等,都表現(xiàn)出了高度的真實(shí)性,以至于人們?cè)谟^看過程中忘記了這些影像都是電腦生成的。而這些虛擬影像的生成都毫不例外地應(yīng)用了基于粒子系統(tǒng)的模擬技術(shù),如圖1所示[1]。
圖1 粒子系統(tǒng)的廣泛應(yīng)用
粒子系統(tǒng)與以往的方法不同,這種方法主要用于模擬不規(guī)則物體。其根本思想就是在模擬和繪制不規(guī)則物體的時(shí)候,將物體劃分為很多微小的粒子圖元,并對(duì)這些粒子圖元進(jìn)行繪制。粒子系統(tǒng)的方法與以往模擬繪制的方法相比較,體現(xiàn)出了它可以模擬不規(guī)則物體的動(dòng)態(tài)性和隨機(jī)性,增加了模擬的真實(shí)感,可以很好地解決不規(guī)則物體的模擬。
粒子系統(tǒng)是 William T.Reeves[2]于1983年在《Particle Systems-A Technique for Modeling a Class of Fuzzy Objects》一文中首次提出來的,并成功地模擬了電影《Star Trek 2:The Wrath of Khan》中的一系列特技鏡頭。1992年,Teng-See Loke等在粒子系統(tǒng)中首次引入牛頓運(yùn)動(dòng)定律,成功渲染不同情況下焰火的多種特性;1998年,Matthias等首次將紋理映射技術(shù)用于粒子系統(tǒng)中,并從物理學(xué)的角度上成功實(shí)現(xiàn)云的模擬繪制;2003年,Konthanen等在運(yùn)用粒子系統(tǒng)時(shí),結(jié)合空間細(xì)分算法減少系統(tǒng)的計(jì)算量,節(jié)省系統(tǒng)資源,提高渲染模擬的實(shí)時(shí)性。
國內(nèi)的研究起步較晚,直到20世紀(jì)末才開始。而且國內(nèi)主要研究粒子系統(tǒng)在不規(guī)則景物應(yīng)用方面的問題。2000年,張芹等通過粒子系統(tǒng)實(shí)現(xiàn)火焰等氣態(tài)現(xiàn)象的動(dòng)態(tài)實(shí)時(shí)性模擬。2006年,王繼州等則通過火焰鏈的方式實(shí)現(xiàn)火焰的模擬。2008年,高玉建等實(shí)現(xiàn)了基于GPU和粒子系統(tǒng)的焰火渲染;2009年,李清暢等則通過粒子系統(tǒng)大規(guī)模編排數(shù)據(jù)和添加音樂特效實(shí)現(xiàn)音樂焰火的渲染[3];黃柏剛等利用粒子系統(tǒng)實(shí)現(xiàn)船舶導(dǎo)航雷達(dá)模擬器中雨雪回波圖像的模擬[4]。2012年吳進(jìn)等在Android平臺(tái)上利用粒子系統(tǒng)構(gòu)建游戲引擎[5]。
近年來,隨著計(jì)算機(jī)軟硬件技術(shù)的發(fā)展,困擾人們多年的粒子系統(tǒng)生成圖像的真實(shí)度和系統(tǒng)實(shí)時(shí)性之間的矛盾已經(jīng)得到了很大的改善。于是,人們開始更多地關(guān)注快速、方便、有趣、多樣化的粒子特效系統(tǒng)及合成影像工具,以便在細(xì)節(jié)方面得到更加完美的視覺效果,如3DSMAX粒子系統(tǒng)[6~7]等。目前,粒子系統(tǒng)技術(shù)被廣泛用于大型3D游戲制作、合成電影電視特效、工業(yè)輔助設(shè)計(jì)、建筑園林、室內(nèi)裝飾以及多媒體制作等領(lǐng)域,同時(shí)為科技教育、軍事技術(shù)和科學(xué)研究提供專業(yè)、全面的解決方案。
粒子系統(tǒng)的基本原理是采用大量細(xì)小粒子圖元作為繪制不規(guī)則模糊物體的基本元素,每個(gè)粒子都一定生命周期,隨著時(shí)間的推移,系統(tǒng)會(huì)不斷地產(chǎn)生新粒子,同時(shí)粒子所具有的各種屬性,即形狀、大小、位置、顏色、透明度、運(yùn)動(dòng)速度、生命值等不斷變化,直到生命周期結(jié)束時(shí)被系統(tǒng)刪除[8~10]。
圖2 粒子系統(tǒng)基本模型
粒子系統(tǒng)的基本模型如圖2所示,粒子系統(tǒng)主要有五部分組成:產(chǎn)生粒子、更新粒子、繪制粒子、判斷粒子是否消亡、刪除粒子。各部分的主要作用如下:
1)產(chǎn)生粒子:初始化粒子的屬性,如:顏色、位置、速度、加速度、作用力、生命期等。以及增加其它特定屬性和刪除特定屬性。
2)更新粒子:以時(shí)間為函數(shù)或以其它變量為函數(shù)對(duì)粒子的屬性進(jìn)行更新,如:根據(jù)速度改變位置、根據(jù)位置改變生命期等。
3)繪制粒子:根據(jù)粒子的位置、顏色等屬性繪制粒子。
4)判斷粒子是否消亡:根據(jù)粒子的生命期來判斷粒子是否應(yīng)該消亡。
Case 2.p=3,q=2.先證明|Q|=2.若否,顯然|Q|=4,可取x∈P,o(x)=3與y∈Q,o(y)=4,因G內(nèi)冪零,則有子群H=〈x〉×〈y2〉誘導(dǎo)的子圖P(H)含有K3,3,從而可得冪圖不可平面化,矛盾.故|Q|=2,類似Case 1可以證明CP(Q)=1,則有P為初等交換3群且G為Frobenius群.
5)刪除粒子:刪除到生命期的粒子。
以上的各部分可以根據(jù)需要進(jìn)行改變,以適應(yīng)不同的需要,如:刪除粒子可以不用真的刪除粒子,用更改粒子的屬性為初始值的方法來刪除粒子等。
根據(jù)粒子系統(tǒng)的模型可知,生成粒子系統(tǒng)的基本步驟:
1)生成一定數(shù)量的新粒子加入系統(tǒng);
2)賦予每一個(gè)新粒子以一定的初始屬性;
3)除那些已經(jīng)超過其生命周期的粒子;
4)根據(jù)粒子的動(dòng)態(tài)對(duì)粒子進(jìn)行變換及改變屬性;
5)繪制并顯示由有生命的粒子組成的圖形。
粒子系統(tǒng)的優(yōu)勢(shì)在于可以使復(fù)雜的物體簡(jiǎn)單化,這種方法,可以體現(xiàn)出不規(guī)則物體的隨機(jī)性和動(dòng)態(tài)性。這種用粒子系統(tǒng)對(duì)物體進(jìn)行模擬時(shí),既保證了景物的整體效果,又反映了景物的局部特征。當(dāng)環(huán)境發(fā)生改變時(shí),粒子系統(tǒng)可以通過粒子自身的運(yùn)動(dòng)和改變,從而對(duì)整個(gè)系統(tǒng)做出調(diào)整。這一切說明了粒子系統(tǒng)的運(yùn)動(dòng)特性,即它是隨著時(shí)間的變化而不斷變化的一個(gè)集合體。也是因?yàn)檫@種特性,使得粒子系統(tǒng)航海應(yīng)用方面具有獨(dú)特的優(yōu)勢(shì)。
粒子系統(tǒng)是一種廣泛應(yīng)用的模擬方法,概括起來講,粒子系統(tǒng)在航海方面主要應(yīng)用于以下三方面,即模擬自然景觀等非整體物體、模擬整體物體的表面形態(tài)、模擬可形變物體如船體等的動(dòng)態(tài)行為。
在對(duì)非整體物體模擬時(shí),粒子系統(tǒng)并不是一個(gè)簡(jiǎn)單的靜態(tài)系統(tǒng)。隨著時(shí)間的推移,系統(tǒng)中已有的粒子不斷改變形狀,不斷運(yùn)動(dòng),而且不斷有新粒子加入,并有舊粒子消失,利用粒子系統(tǒng)的這種特性構(gòu)建航海虛擬環(huán)境,生成逼真、可控的風(fēng)浪、雨雪、云霧、煙霧、霞光、船體周圍和島礁周圍浪花等,降低航海模擬系統(tǒng)的運(yùn)算成本,提高航海視景的真實(shí)度和實(shí)時(shí)性;利用粒子系統(tǒng)生成大霧、雨雪天氣,構(gòu)建復(fù)雜航行海區(qū),提高航海模擬器的訓(xùn)練效果;利用基于粒子系統(tǒng)的方法提高氣象雷達(dá)、導(dǎo)航雷達(dá)的顯示效果。
粒子系統(tǒng)還可以應(yīng)用于物體的表面建模之中,用它建立的表面模型是一種彈性的模型,與一般的表面模型不一樣,粒子系統(tǒng)建立的表面模型在不需要人工干預(yù)的情況下,可以實(shí)現(xiàn)對(duì)表面的拆分與擴(kuò)展。由于粒子的排列十分靈活,在物理形狀與拓?fù)浣Y(jié)構(gòu)上,粒子系統(tǒng)能夠建立出比一般的可形變表面模型更加復(fù)雜和隨意的物理形狀。因而,在海上戰(zhàn)場(chǎng)模擬方面,利用粒子系統(tǒng)來生成爆炸、碎裂、火炮口焰、導(dǎo)彈尾焰、箔條干擾、燈塔燈柱的夜間信號(hào)及植被、森林、群山和島嶼等,使戰(zhàn)場(chǎng)環(huán)境更加逼真;還可以模擬航船、海上建筑、港口、碼頭等整體物體。
粒子間有相互作用力存在,粒子還受到重力等外力的作用,運(yùn)行粒子系統(tǒng)動(dòng)力學(xué)原理,粒子系統(tǒng)可以用來模擬物體的運(yùn)動(dòng)過程以及液態(tài)物體的流動(dòng)等行為。運(yùn)用粒子系統(tǒng)方法對(duì)形變物體容積建模時(shí),一般用質(zhì)量、半徑、位置、速度及相互作用力等屬性來描述系統(tǒng)中的粒子。盡管粒子的描述比較簡(jiǎn)單,但由于粒子用于模擬一些復(fù)雜的行為,尤其需要模擬一定約束下的形變物體,因此粒子系統(tǒng)對(duì)形變物體的模擬也并不是一種十分簡(jiǎn)單的方法。粒子的運(yùn)動(dòng)一般由物理學(xué)中牛頓定理來定義。在模型中,主要考慮兩種類型的力,粒子間的內(nèi)部力,包括引力和斥力,以維持粒子間的關(guān)系,而力的大小由粒子間的距離來確定;系統(tǒng)外部力,如與障礙物碰撞所產(chǎn)生的力或重力。結(jié)合粒子系統(tǒng)和幾何模型或者物理模型,可模擬船行波或者艦船航跡[9],研究淺水效應(yīng)、船體興波、復(fù)雜海區(qū)等對(duì)船舶航行安全的影響;由于粒子系統(tǒng)的靈活性和可控性,可賦予單個(gè)粒子質(zhì)量、速度及作用力,將其運(yùn)用于船體碰撞檢測(cè)和船體結(jié)構(gòu)分析研究也是一個(gè)重要方面。
[1]CHEN GANG.Particle System Based Simulation of Special Effect in 3DVirtual Scene[J].Wuhan:2011International Conference on Computer,Electrical,and Systems Sciences,and Engineering.
[2]William T.Reeves.Particle Systems-A Technique for Modeling a Class of Fuzzy Objects[J].Computer Graphics,1983,17(3):359-376.
3 高秀亭.基于粒子系統(tǒng)的火焰和煙花實(shí)時(shí)模擬技術(shù)研究[D.蘇州:蘇州大學(xué)研究生院,2011.
[4]黃柏剛.船舶導(dǎo)航雷達(dá)模擬器中雨雪回波圖像的研究[D].大連:大連海事大學(xué)研究生院,2009.
[5]吳進(jìn),劉文浩,謝韜.Android平臺(tái)粒子系統(tǒng)構(gòu)建[J].成都:計(jì)算機(jī)光盤軟件與應(yīng)用,2012(08).
[6]王少偉,陳曉青.影視特效粒子系統(tǒng)研究[J].上海:軟件導(dǎo)刊,2012,11(4).
[7]梁忠先.3DSMAX粒子系統(tǒng)初探[J].天津:天津職業(yè)院校聯(lián)合學(xué)報(bào),2012:14(5).
[8]楊青.基于粒子系統(tǒng)的動(dòng)態(tài)模擬真實(shí)感研究與實(shí)現(xiàn)[D.西安:西安電子科技大學(xué),2010.
[9]嚴(yán)芳.粒子系統(tǒng)及其SPH方法應(yīng)用的研究與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2006.
[10]張芹,吳慧中,張健.基于粒子系統(tǒng)的建模方法研究[J].計(jì)算機(jī)科學(xué),2003,30(8).
[11]薛菲,張榮國,陳大川,等.基于粒子系統(tǒng)的雪景模擬算法研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2011(6).
[12]趙欣,李鳳霞,戰(zhàn)守義.基于粒子系統(tǒng)的艦船航跡仿真[J].計(jì)算機(jī)工程,2008(08):34(15).