專利名稱:基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法
技術(shù)領域:
本發(fā)明屬于真實世界計算機仿真技術(shù)領域,具體涉及一種基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法。
背景技術(shù):
對于積雪的模擬,1997年Nishita等人采用Metaball來構(gòu)造和繪制積雪場景,并模擬了光線在雪表面的散射。1999年Premoze等在繪制阿爾卑斯山時考慮了高山的積雪構(gòu)造,但由于高山尺寸大,繪制效果比較粗糙。2000年Fearnig介紹了一個復雜的積雪模型和穩(wěn)定性模型來構(gòu)造由幾何面表達的雪,用它繪制出迄今為止最漂亮的虛擬積雪場景,但其建模過程和場景數(shù)據(jù)非常復雜,繪制速度很慢。2004年Ohlsson等人采用表面預測算法來計算地面上每個網(wǎng)格處積雪的數(shù)量,并進行遮擋剔除,較快地繪制出積雪場景,但仍需要大 量的預處理工作。國內(nèi)積雪研究方面,2002年陳彥云等采用體紋理映射和位移映射技術(shù)構(gòu)造出較為逼真的積雪場景。2007年賀懷清等人引入噪聲技術(shù)模擬積雪,其方法只適用于大場景模擬積雪的情況,對細節(jié)模擬程度不高。對于飄雪的模擬,2004年Langer等采用三維逆傅立葉變換對場景圖像進行處理,并用一系列二維圖像序列重建出下雪的場景,但該方法實際上是一種圖像處理的方法,真實感不強。2006年Ingar Saltvik等人采用平行算法綜合模擬積雪與飄雪場景,以期達到實時快速模擬的目的,但真實性上不能保證。在國內(nèi)研究方面,2003年王潤杰等人在分析粒子系統(tǒng)的基礎上,提出了一種模擬雨雪的實時算法,但是該算法所使用的雪粒子運動方程還相對簡單。2004年王長波采用物理模型的方法,對經(jīng)典的Boltzmann方程進行離散,建立了基于微觀動力學的三維風場模型,并在綜合考慮風雪交互作用的基礎上,給出了風對雪的傳輸、侵蝕機理及雪的沉積規(guī)則,并經(jīng)過適當?shù)暮喕铀?,實時地繪制出不同大小、不同方向風速下真實感的風雪場景。2005年徐立明等人在分析粒子系統(tǒng)實現(xiàn)原理的基礎上,基于OpenGL提出了一種在大型場景漫游系統(tǒng)中實時模擬雨、雪的方法。2005年陳蕾等人根據(jù)飛行模擬實際的視景需求,簡化了數(shù)學計算來模擬飄雪,并且引入碰撞檢測模擬粒子間的碰撞,取得很好效果,不過它只限于在飛行模擬器中實現(xiàn)。2008年陳華杰等人提出了一種新的應用于大規(guī)模場景的雨雪模擬實時算法,該算法的基本思想是結(jié)合粒子系統(tǒng),根據(jù)人體視覺深度原理,采用LOD (Level ofDetail)技術(shù),根據(jù)粒子與觀測點的距離對雨雪的密度進行分級,并對粒子發(fā)射器進行優(yōu)化,提高了粒子的利用效率,從而達到高效仿真的效果。此外還有其他一些學者對雨雪場景的模擬做了不少工作。在虛擬現(xiàn)實領域里基于粒子系統(tǒng)模型的實時模擬方法中,真實性和實時性問題一直是研究者們研究的重點和難點,如何以粒子系統(tǒng)基本算法來構(gòu)造復雜物體并逼真的對其進行實時渲染是虛擬現(xiàn)實技術(shù)研究的新課題。本發(fā)明因此而來。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法,解決了現(xiàn)有技術(shù)中計算機模擬雪花真實感和實時性不能同時具備等問題。為了解決現(xiàn)有技術(shù)中的這些問題,本發(fā)明提供的技術(shù)方案是—種基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法,其特征在于所述方法通過將雪花粒子分為計算機模擬的飄雪粒子和計算機模擬的積雪粒子,所述方法包括以下步驟( I)開始雪花沉積模擬時,通過計算機模擬的飄雪粒子模型構(gòu)建繪制飄雪粒子,所述飄雪粒子從隨機高度負責循環(huán)飄落;(2)當飄雪粒子下落到距離計算機模擬的場景地面的預 定高度時,通過計算機模擬的積雪粒子模型負責接受該飄雪粒子的坐標信息,并在該坐標位置通過計算機繪制成新的積雪粒子;(3)已繪制的積雪粒子在計算機模擬的場景地面上實現(xiàn)點沉積和面沉積。優(yōu)選的,所述方法中飄雪粒子的產(chǎn)生通過隨機函數(shù)產(chǎn)生,所述隨機函數(shù)產(chǎn)生飄雪粒子的初始位置和初始速度。優(yōu)選的,所述方法中飄雪粒子的位置信息為三維坐標信息,通過監(jiān)測飄雪粒子的高度信息判斷飄雪粒子是否下落到距離計算機模擬的場景地面的預定高度內(nèi)。優(yōu)選的,所述方法中點沉積為當飄雪粒子下落到距離計算機模擬的場景地面的預定高度時,通過計算機模擬的積雪粒子模型在該坐標位置生成新的雪花粒子。優(yōu)選的,所述方法中面沉積為當使用點沉積的方法使得計算機模擬的場景地面局部區(qū)域上堆積的雪花達到預定數(shù)量后隨機生成成片雪花,并將計算機模擬的場景地面高度增加成片雪花的厚度。針對粒子系統(tǒng)模型的真實性與實時性的矛盾問題,本發(fā)明提出一種有效實現(xiàn)真實感和實時性的雪花沉積方法。本發(fā)明將飄雪和積雪分開實現(xiàn),定義一定數(shù)量的雪花粒子,該類粒子被封裝到一個雪花粒子類里。該部分粒子只負責循環(huán)飄落,當其下落到一定高度時(接近地面)由另一個積雪粒子類來接受其坐標信息并在改點繪制一個新的積雪粒子,而飄雪粒子回到一個隨機高度,繼續(xù)下落。相對于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點是本發(fā)明技術(shù)方案同時提高了計算機模擬雪花場景時的實時性和真實性,本方法將傳統(tǒng)中一些比較常用的粒子屬性(比如位置,速度)拿出來單獨封裝成一個類即雪花粒子類,操作簡單方便。傳統(tǒng)的粒子系統(tǒng)方法,需針對不同特效類型的粒子進行很多次內(nèi)存操作。本方法增強了真實感,通過飄雪粒子的坐標變換來反映風速風向和重力場對雪花飄落的影響,具有很強的真實感。
下面結(jié)合附圖及實施例對本發(fā)明作進一步描述圖I為基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法的飄雪粒子構(gòu)建的流程示意圖。圖2為基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法的積雪粒子構(gòu)建的流程示意圖。
具體實施例方式以下結(jié)合具體實施例對上述方案做進一步說明。應理解,這些實施例是用于說明本發(fā)明而不限于限制本發(fā)明的范圍。實施例中采用的實施條件可以根據(jù)具體廠家的條件做進一步調(diào)整,未注明的實施條件通常為常規(guī)實驗中的條件。實施例如圖I所示,本實施例基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法,通過將雪花粒子分為計算機模擬的飄雪粒子和計算機模擬的積雪粒子,所述方法包括以下步驟( I)開始雪花沉積模擬時,通過計算機模擬的飄雪粒子模型構(gòu)建繪制飄雪粒子,所述飄雪粒子從隨機高度負責循環(huán)飄落;(2)當飄雪粒子下落到距離計算機模擬的場景地面的預定高度時,通過計算機模擬的積雪粒子模型負責接受該飄雪粒子的坐標信息,并在該坐標位置通過計算機繪制成新 的積雪粒子;(3)已繪制的積雪粒子在計算機模擬的場景地面上實現(xiàn)點沉積和面沉積。飄雪粒子的產(chǎn)生通過隨機函數(shù)產(chǎn)生,所述隨機函數(shù)產(chǎn)生飄雪粒子的初始位置和初始速度。飄雪粒子的位置信息為三維坐標信息,通過監(jiān)測飄雪粒子的高度信息判斷飄雪粒子是否下落到距離計算機模擬的場景地面的預定高度內(nèi)。點沉積為當飄雪粒子下落到距離計算機模擬的場景地面的預定高度時,通過計算機模擬的積雪粒子模型在該坐標位置生成新的雪花粒子。面沉積為當使用點沉積的方法使得計算機模擬的場景地面局部區(qū)域上堆積的雪花達到預定數(shù)量后隨機生成成片雪花,并將計算機模擬的場景地面高度增加成片雪花的厚度。具體進行模擬實現(xiàn)時,具體采用如下的步驟進行一、飄雪過程描述如下(I)初始化一定數(shù)量的飄雪粒子,雪花的產(chǎn)生是一個隨機過程,該過程由隨機函數(shù)來完成。如采用c語言時,可以采用的飄雪粒子結(jié)構(gòu)體如下struct Snow{float x;float y;float z;float speed;};Snow R [20000];飄雪粒子模型的飄雪粒子R[i]的初始化位置(x,y, z)及速度(speed)描述如下R[i]. X= (rand O %10000-5000) /50. O ;R[i]. z=(rand O %10000-5000)/50. O ;R[i] · y=0. 001* (rand O %1000) * (rand O %16_5);R[i] · speed=rand () %200。
(2)飄雪粒子在下落過程中受到風力,重力,浮力等的影響,本實施例只考慮重力和風力的作用。其中風力作用體現(xiàn)在雪花運動時X軸和z軸的坐標變化,具體實現(xiàn)方法如下R[i]. x+=m_EastToWest*0·01;R[i]. z+=m_SouthToNorth*0· 01;而重力作用則體現(xiàn)在I軸的坐標變化,具體實現(xiàn)方法如下R[i]. speed=randO%10*(m_Grave)*0. 05;//m_Grave 指重力加速度R[i]· y-=R[i]· speed;
(3)當飄雪粒子下落到一定的高度,即R[i].y小于一定的值后,記錄該粒子的位置。R[j]. xl=R[i]. X;R[j].yl=R[i].y;R[j]. zl=R[i]. Z0(4)當飄雪粒子下落到一定高度(下落到地面),坐標被記錄下來之后,再讓該粒子回到一個隨機高度繼續(xù)下落,不斷循環(huán)。R[i], y=20;R[i], x=(rand()%10000-5000)/50. O;R[i]. z= (rand () %10000-5000) /50. 0。如采用c語言時,可以采用的積雪粒子結(jié)構(gòu)體如下struct static_Snow{float x;float y;float z;float speed;};static_Snow R[20000];其中float x, float y, float z,分別指雪花的 x, y, z 軸的坐標,float speed 指雪花下落速度。二、積雪過程描述如下(I)點沉積每當有一個飄雪粒子下落到地面且其坐標被記錄下之后,便生成一個新的雪花粒子,初始位置即為記錄下的坐標,速度為O。(2)面沉積當使用點沉積的方法使得地面上堆積的雪花達到一定數(shù)量之后便采用面沉積的方法。該方法是隨機生成成片雪花,并適時改變雪花堆積的高度。當采用如c語言的結(jié)構(gòu)體形式構(gòu)建飄雪粒子和積雪粒子時,本方法實施時可分為飄雪和積雪兩個部分,其具體步驟如下A.飄雪部分i.初始化雪花粒子,雪花粒子結(jié)構(gòu)體有X,Y, Z坐標及初始速度ii.雪花粒子運動受到風速風向和重力場大小的影響,具體表現(xiàn)在坐標的變化上,重力場集中表現(xiàn)在Y軸坐標的變化上,X,Z軸則和風速風向緊密相關iii.當雪花落到地面上時,將Y軸坐標改變使其重新到空中繼續(xù)下落,而X,Z軸則隨機生成,周而復始B.積雪部分分為點沉積和面沉積i.當雪花落到地面時,通過循環(huán)判斷該點之前有無雪花若無則通過一個積雪粒子結(jié)構(gòu)體數(shù)組記錄它的相應坐標,同時在該點繪制雪花粒子。當?shù)孛嫔涎┗W訑?shù)達到指定數(shù)目時,則進入面沉積ii.面沉積同樣采用一個雪花粒子結(jié)構(gòu)體,當落到地面的雪花坐標與之前沉積的雪花粒子坐標相同時,則將該點的Y軸坐標加O. 5賦給該結(jié)構(gòu)體數(shù)組,同時繪制雪花面進行計算機模擬時,可以假定飄雪部分定義20000個雪花粒子循環(huán)使用,地面上 則定義100000個粒子記錄點沉積的雪花,當達到100000個時,進行面沉積,定義2000個粒子繪制雪花面。算法偽代碼如下for(int i=0;i<(5000+1500*m_SnowNum);i++){繪制雪花}for (int i=0; i〈2000; i++)//遍歷所有雪花{計算雪花X,Z軸坐標;改變雪花下落速度;改變雪花Y軸坐標;if (Y軸坐標〈地面Y軸坐標){If(j<10000)//地面雪花例子數(shù)是否達到最大值{遍歷地面雪花,已經(jīng)有相等雪花則break ;如果不等,則記錄下落到地面的雪花位置;}下落雪花再回到空中繼續(xù)下落;}}if(j==10000)//地面雪花達到最大值;{隨機生成面沉積的坐標;遍歷地面雪花,如果點沉積和面沉積的X,Z軸坐標相等,則Y軸坐標+0. 5 ;否則Y軸坐標等于地面Y軸坐標;遍歷面沉積點坐標,繪圖;}
for(int m=0;m<10000;m++){遍歷點沉積的點坐標,繪制地面雪花;
}上述實例只為說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的在于讓熟悉此項技術(shù)的人是能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制本發(fā)明的保護范圍。凡根據(jù)本發(fā)明精神實質(zhì)所做的等效變換或修飾,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法,其特征在于所述方法通過將雪花粒子分為計算機模擬的飄雪粒子和計算機模擬的積雪粒子,所述方法包括以下步驟 (1)開始雪花沉積模擬時,通過計算機模擬的飄雪粒子模型構(gòu)建繪制飄雪粒子,所述飄雪粒子從隨機高度負責循環(huán)飄落; (2)當飄雪粒子下落到距離計算機模擬的場景地面的預定高度時,通過計算機模擬的積雪粒子模型負責接受該飄雪粒子的坐標信息,并在該坐標位置通過計算機繪制成新的積雪粒子; (3)已繪制的積雪粒子在計算機模擬的場景地面上實現(xiàn)點沉積和面沉積。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法中飄雪粒子的產(chǎn)生通過隨機函數(shù)產(chǎn)生,所述隨機函數(shù)產(chǎn)生飄雪粒子的初始位置和初始速度。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法中飄雪粒子的位置信息為三維坐標信息,通過監(jiān)測飄雪粒子的高度信息判斷飄雪粒子是否下落到距離計算機模擬的場景地面的預定高度內(nèi)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法中點沉積為當飄雪粒子下落到距離計算機模擬的場景地面的預定高度時,通過計算機模擬的積雪粒子模型在該坐標位置生成新的雪花粒子。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述方法中面沉積為當使用點沉積的方法使得計算機模擬的場景地面局部區(qū)域上堆積的雪花達到預定數(shù)量后隨機生成成片雪花,并將計算機模擬的場景地面高度增加成片雪花的厚度。
全文摘要
本發(fā)明公開了一種基于粒子系統(tǒng)模型進行實時模擬雪花沉積的方法,其特征在于所述方法通過將雪花粒子分為計算機模擬的飄雪粒子和計算機模擬的積雪粒子,所述方法包括以下步驟(1)開始雪花沉積模擬時,通過計算機模擬的飄雪粒子模型構(gòu)建繪制飄雪粒子,所述飄雪粒子從隨機高度負責循環(huán)飄落;(2)當飄雪粒子下落到距離計算機模擬的場景地面的預定高度時,通過計算機模擬的積雪粒子模型負責接受該飄雪粒子的坐標信息,并在該坐標位置通過計算機繪制成新的積雪粒子;(3)已繪制的積雪粒子在計算機模擬的場景地面上實現(xiàn)點沉積和面沉積。該方法通過飄雪粒子的坐標變換來反映風速風向和重力場對雪花飄落的影響,具有很強的真實感和實時性。
文檔編號G06T19/00GK102867334SQ20121030139
公開日2013年1月9日 申請日期2012年8月23日 優(yōu)先權(quán)日2012年8月23日
發(fā)明者陳國慶, 劉小芬 申請人:蘇州兩江科技有限公司