郭燁旻
(吉林省國際商務(wù)學(xué)校,吉林長春 130012)
粒子系統(tǒng)(Particle System)是Reeves在1983年提出的利用粒子模擬自然場景的一種技術(shù),多用于模擬雨、雪、水流、爆炸、煙霧等場景[1]。由于這些場景都是根據(jù)物理模型計算出來的,也可以說,粒子系統(tǒng)是基于物理原理的一種建模方法。在本文中首先使用粒子系統(tǒng)建立云霧的三維框架模型,在形成的框架中使用過程紋理函數(shù)對云模型進行紋理映射,最后應(yīng)用公告板技術(shù)完成云模型的繪制。
應(yīng)用粒子系統(tǒng)將景物定義為由成千上萬個不規(guī)則并且是隨機分布的粒子組成,每個粒子都有一定的生命周期,每時每刻都在不斷地運動和改變形態(tài),由諸多粒子的集合而不是個別粒子形成了景物的整體形態(tài)和特征以及動態(tài)變化[2]。
通過控制粒子的運動將云的擴散以及氣流對云的作用表示出來,在這一變化發(fā)生的過程中由粒子的分布規(guī)律以及濃度屬性得到總的粒子分布濃度場。其中粒子的主要屬性為:粒子的速度、位置、加速度、作用半徑以及濃度函數(shù)。粒子的作用半徑和濃度函數(shù)之間的關(guān)系如圖1所示。

圖1 半徑和濃度函數(shù)之間的關(guān)系
其中粒子的作用半徑為R,通過系統(tǒng)設(shè)置濃度域值p,通過解方程f(R,t)=p,得以確定粒子的作用范圍R。現(xiàn)實生活中,自然界的云其實是由無數(shù)個液態(tài)的小水珠集合在一起形成的,所以在進行云模型架構(gòu)時使用粒子代替小水珠,模型的構(gòu)建過程如圖2所示。

圖2 模型的構(gòu)建過程
應(yīng)用根據(jù)云的物理模型制作的紋理貼片代替生成的粒子,該紋理具有云粒子的大小、形狀、透明度、顏色等特性。而且根據(jù)場合和云精細程度的需要,使用過程紋理貼片代替一個或多個粒子,用稍微復(fù)雜的貼片可以減小粒子的數(shù)目而達到相同的效果,以提高性能。粒子紋理可以根據(jù)算法生成,也可以使用現(xiàn)有的圖像[5]。在構(gòu)建云內(nèi)的粒子時,由于粒子過多,不能采用OpenGL提供的點或者三維型體來代表微小的粒子,因為系統(tǒng)性能無法承受,而且alpha混合的時候也不美觀。本文采用紋理映射和Billboard技術(shù)來實現(xiàn)云的繪制。
在具體的云紋理采樣過程中應(yīng)用二維高斯正態(tài)分布函數(shù)公式:

生成的云霧紋理定義在水平直角坐標(biāo)系[-1.0,1.0]×[-1.0,1.0]區(qū)間內(nèi),G(u,v)用來計算點(u,v)處的灰度值,σ為高斯分布的方差。在公式中引入中心峰值調(diào)制系數(shù)ρ,其取值范圍是[0,2πσ],根據(jù)實際模擬經(jīng)驗當(dāng)峰值為0.4時最為接近自然效果,同時ρ=σ。
公告板 (Billboard)技術(shù)是一項非常實用的技術(shù),它可以用一種簡單的方式來完成很多特別的效果。公告板技術(shù)的原理其實很簡單,就是使用兩個三角形組成的矩形來顯示一個位圖,在顯示過程中這個矩形面板根據(jù)攝像機的觀察角度和位置而變化。粒子在三維的空間中運行,其位置分布也是三維的,但是由于通常的紋理映射技術(shù)都是二維的,所以當(dāng)視點在場景當(dāng)中運動時,可能由于相互角度的關(guān)系而發(fā)生失真現(xiàn)象,當(dāng)視線平行于紋理映射平面時,甚至完全看不到物體的存在。我們應(yīng)用公告板技術(shù)使生成的過程紋理跟隨視角變化,利用二維的紋理函數(shù)模擬三維的渲染效果[5]。
在粒子填充完以后,根據(jù)云圖可以進一步調(diào)整云的效果。因為粒子的屬性直接影響到云的效果,粒子的大小直接關(guān)系到云的分辨率,當(dāng)視點較近時,粒子尺寸應(yīng)該較小,而當(dāng)視點較遠時,粒子尺寸較大。粒子的密度直接影響到云的厚度和顏色,而顏色和透明度則間接反映了光照程度,因此通過調(diào)整粒子的密度和、顏色及透明度就可表現(xiàn)出光照的影響。在繪制過程中,可以通過隨機地控制與粒子有關(guān)的這些參數(shù)來增加真實感。為了更好地模擬云彩效果,我們還可控制云團邊緣的半透明度比中心的半透明度高,這樣,在云粒子集中的地方,會呈現(xiàn)出亮白色;還可采用色彩融和的技術(shù),把云粒子本身的顏色和天空面的背景顏色很好地融和起來,在云粒子分散的地方,會略微呈現(xiàn)出天空的背景面,這樣就能得到較為真實的效果。
使用java構(gòu)建粒子系統(tǒng),應(yīng)用OpenGL對生產(chǎn)的系統(tǒng)進行渲染具體步驟如圖2所示:

圖2 粒子系統(tǒng)生成步驟
本文應(yīng)用粒子系統(tǒng)與紋理過程函數(shù)相結(jié)合的方法對自然景物中的云霧模型進行模擬,在具體的模型繪制過程中應(yīng)用紋理映射和Billboard技術(shù)來實現(xiàn),從而提出了一種多種建模方式相結(jié)合的模擬不規(guī)則物體的全新方法。
[1]Reeves T.Particle systems—a technique for modelinga class offuzzyobjects[J].ACMTransactions on Graphics,1983,2(2):91-108.
[2]Harris MJ.Real-time cloud simulation and rendering[D].Carolina:UniversityofNorth Carolina,2003.
[3]袁霞,張玉啄.粒子系統(tǒng)方法及其應(yīng)用[J].云南師范大學(xué)學(xué)報:自然科學(xué)版,2003(3):14-16.
[4]張芹,吳慧中,張健.基于粒子系統(tǒng)的建模方法研究[J].計算機科學(xué),2003(8):144-146.
[5]馬繼峰,彭曉源,馮勤,等.三維特殊效果庫的研究與實現(xiàn)[J].光電技術(shù)應(yīng)用,2003(4):34-38.
[6]羅玉玲.粒子系統(tǒng)與紋理映射相結(jié)合模擬禮花的研究[J].電腦知識與技術(shù),2004(20):70-72.
[7]魏海燕.虛擬制造技術(shù)的相關(guān)概念及其應(yīng)用[J].機械工程師,1999(9):1-2.