郭 云, 鄭凱東
(西安石油大學(xué) 計(jì)算機(jī)學(xué)院, 西安710065)
隨著互聯(lián)網(wǎng)的快速發(fā)展,人們對(duì)視覺感受要求越來越高,計(jì)算機(jī)圖形學(xué)的地位也隨之提高。 利用計(jì)算機(jī)對(duì)自然景物的模擬也層出不窮,比如模擬噴泉、海洋、河流等。 但是計(jì)算機(jī)圖像合成技術(shù)要求物體表面規(guī)則明確,然而河流、海洋等一些自然景觀的表面是不規(guī)則的,它們以一種獨(dú)特的動(dòng)態(tài)美吸引人們的眼球。 由于粒子系統(tǒng)方法靈活度高且具有實(shí)時(shí)仿真功能,因此本文采用該方法實(shí)現(xiàn)對(duì)噴泉的模擬。
在自然景觀模擬領(lǐng)域中,粒子系統(tǒng)占據(jù)了一定的地位,能夠使得模擬的景物更加真實(shí)沉浸。 其原理為景物由許許多多個(gè)隨機(jī)分布的不規(guī)則粒子集合組成,每個(gè)粒子都有其固定的生命周期,時(shí)刻都在不斷運(yùn)動(dòng)變化,由此實(shí)現(xiàn)了景物的整體形態(tài)和實(shí)時(shí)變化。 對(duì)噴泉的模擬采用粒子系統(tǒng)有一定的優(yōu)點(diǎn),給人的直觀感受更加逼真。
虛擬現(xiàn)實(shí)技術(shù)又稱靈境技術(shù),能夠結(jié)合計(jì)算機(jī)給人們帶來一場(chǎng)視覺盛宴,具有真實(shí)感和沉浸感[1]。 在模擬自然景觀時(shí)可以起到很好的效果,在虛擬現(xiàn)實(shí)系統(tǒng)中,對(duì)自然景觀的構(gòu)建是一個(gè)重要的研究課題,具有一定的研究意義。
本文將采用粒子系統(tǒng)對(duì)噴泉進(jìn)行實(shí)時(shí)模擬。 通過C#編程,結(jié)合Unity3D 實(shí)現(xiàn)對(duì)噴泉的模擬,重點(diǎn)分析如何構(gòu)建噴泉粒子系統(tǒng)模型、水的流動(dòng),增強(qiáng)真實(shí)感。
粒子系統(tǒng)是由許多不規(guī)則的、隨機(jī)分布的粒子圖元組成[2]。 有一定的生命周期,從粒子產(chǎn)生、活動(dòng)、死亡三個(gè)過程。
定義1單個(gè)粒子——實(shí)數(shù)域上的一個(gè)n 維向量,表示為式(1):

其 中: 粒 子 的 n 個(gè) 屬 性 為:Attri1,Attri2,……Attrin,包括了粒子的位置、大小、形狀、速度等等。
定義2粒子映射——單個(gè)粒子1 到正整數(shù)集的映射,其中每個(gè)粒子都具有相應(yīng)的一個(gè)索引, 表示為It 到Pn 的映射,表示為式(2):

其中:索引為j 的粒子所具有的性質(zhì)和狀態(tài)標(biāo)示為式(3):

定義3粒子系統(tǒng)——粒子映射集組成的集合表示為式(4):

其中, S 表示粒子系統(tǒng)處于t0,t1,…,tn時(shí)的狀態(tài)集合,其中S(t0) 表示初始狀態(tài)。
噴泉是由許多微小粒子組成,這些微小粒子的集合就是粒子系統(tǒng)[3]。 因?yàn)榱W硬皇庆o止不變的,所以會(huì)對(duì)粒子進(jìn)行移動(dòng)變換,判斷粒子是否有生命,如果超過了生命周期則刪除,否則繪制并顯示由這些有生命的粒子組成的圖形。 圖1 為噴泉粒子繪制的流程圖。

圖1 噴泉粒子繪制流程圖Fig. 1 Flow chart of fountain particles
運(yùn)動(dòng)中的粒子通常有以下幾種運(yùn)動(dòng)模型:
(1)直線運(yùn)動(dòng)。 在直線運(yùn)動(dòng)中,粒子的位置和速度變化遵循式(5)和式(6):

其中,P、P0分別表示粒子位置和初始位置,V、V0分別表示粒子速度和初始速度,a 表示加速度。
(2)阻尼運(yùn)動(dòng)。 當(dāng)前運(yùn)動(dòng)方向上的粒子由于阻尼作用,速度根據(jù)一定比例減小,表示為式(7):

其中,d 表示阻尼因子,d ∈[0,1].
(3)螺旋運(yùn)動(dòng)。 螺旋運(yùn)動(dòng)是指粒子能夠按照給定的軸進(jìn)行旋轉(zhuǎn),以達(dá)到翻滾等效果。
粒子的運(yùn)動(dòng)方式多樣化可以讓構(gòu)建的虛擬噴泉效果更加逼真,當(dāng)水流噴射那一瞬間是直線運(yùn)動(dòng)的,但是當(dāng)水流向上運(yùn)動(dòng)時(shí)會(huì)受到一定的阻力,因此會(huì)按一定比例減小其速度。
Struct particle
{
float t;/ /粒子生命周期
float v;/ /粒子運(yùn)動(dòng)速度
float d;/ /粒子的運(yùn)動(dòng)方向
floatx,y,z;/ /位置坐標(biāo)
floatxd,zd;/ /x 與z 方向增量
char type;/ /粒子運(yùn)動(dòng)或淡化
float a;/ /淡化alpha 值
struct particle *next,*prev;
}
選用3DSMAX 對(duì)噴泉進(jìn)行花灑動(dòng)畫的建模,主要分為以下步驟:
(1)在場(chǎng)景中把超級(jí)噴射粒子系統(tǒng)加入,在側(cè)視圖中調(diào)整位置,使其遠(yuǎn)離地面。 更改粒子屬性,比如:粒子發(fā)射總量、壽命以及速度等等。 綁定空間扭曲,把導(dǎo)向板和重力綁定到上面,由于重力的拉扯,粒子無法發(fā)射,可以更改粒子的速度,使其發(fā)射。 此時(shí)僅僅能夠?qū)崿F(xiàn)粒子向上直線噴射。
(2)由于花灑型噴泉不是以粒子本身來實(shí)現(xiàn)的,所以需要一定的傾斜角度。 首先創(chuàng)建一個(gè)輔助物體,對(duì)它進(jìn)行一定的綁定,再將其X、Y、Z 分別對(duì)齊到粒子上。 將粒子綁定到輔助物體上,調(diào)整輔助物體即可實(shí)現(xiàn)粒子傾斜效果。
(3)調(diào)整粒子屬性:生命周期、初始速度及方向等。
(4)為了使噴泉?jiǎng)赢嬆軌虮普?需要制作間歇性停頓動(dòng)畫。 在幀序列中選取一定值,然后調(diào)整粒子角度,并作間隔動(dòng)畫,否則會(huì)出現(xiàn)扭曲現(xiàn)象,最后實(shí)現(xiàn)花灑效果。 系統(tǒng)建模過程效果,如圖2 所示。
采用3DSMAX 對(duì)噴泉建模,然后將其倒入U(xiǎn)nity3D 中,進(jìn)一步的功能完善。
(1)采用3DSMAX 建模。 在對(duì)噴泉建模之前,首先需要采集數(shù)據(jù),然后在CAD 上繪制其二維平面圖,導(dǎo)入3DSMAX 中,修改其中特殊節(jié)點(diǎn),進(jìn)行貼圖處理,模型貼圖來源于實(shí)地取景并進(jìn)行處理,最后優(yōu)化模型。

圖2 噴泉建模效果過程圖Fig. 2 Fountain modeling effect process diagram
(2)將其導(dǎo)入U(xiǎn)nity3D。 將做好的噴泉模型導(dǎo)入到Unity3D 中,然后對(duì)模型做細(xì)化處理。
①在噴泉周圍創(chuàng)建空物體,并且將其設(shè)置為透明屬性,稱之為“墻體”,給其添加碰撞器,實(shí)現(xiàn)了避免行人靠近噴泉內(nèi)部的效果,使得虛擬噴泉更加具有真實(shí)感。
②在這個(gè)場(chǎng)景中添加一個(gè)按鈕,然后給按鈕添加觸發(fā)器,點(diǎn)擊按鈕會(huì)彈出噴泉介紹。 為按鈕增加一個(gè)聲音,聲音來源于提前錄制好的噴泉簡介,當(dāng)觸發(fā)到按鈕后會(huì)實(shí)現(xiàn)自動(dòng)語音播報(bào)功能。
③為整個(gè)場(chǎng)景添加背景音樂。 當(dāng)噴泉開始噴射時(shí)伴隨著的是所添加的音樂,使得整個(gè)場(chǎng)景更加真實(shí)。
本文論述了基于粒子系統(tǒng)下的噴泉模擬過程。利用3DMAX 建模軟件和Unity3D 軟件對(duì)花灑噴泉進(jìn)行場(chǎng)景的模擬。 首先構(gòu)建噴泉建模,其次通過Unity3D 軟件實(shí)現(xiàn)場(chǎng)景的人機(jī)交互。 科技發(fā)展迅速,人們對(duì)視覺感知要求越來越高,因此對(duì)場(chǎng)景的復(fù)雜性、逼真度以及實(shí)時(shí)性等方面的挑戰(zhàn)性也越來越高。 對(duì)自然景物的模擬研究是虛擬現(xiàn)實(shí)技術(shù)極為重要的一個(gè)探索方向。