一種天氣粒子的顯示方法及其顯示裝置制造方法
【專利摘要】本發(fā)明涉及一種天氣粒子的顯示方法及其顯示裝置,所述顯示方法包括以下步驟:對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z;根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小和運(yùn)動(dòng)狀態(tài),其中,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變。進(jìn)一步,為了解決天氣粒子在游戲場(chǎng)景的變換中忽然有大量的粒子產(chǎn)生和消失,本發(fā)明還提供了另一種粒子顯示方法,通過預(yù)緩存天氣粒子的方式,使玩家在游戲場(chǎng)景移動(dòng)時(shí)觀測(cè)到的粒子是平滑連續(xù)。同時(shí),本發(fā)明還分別針對(duì)上述兩種粒子的顯示方法,提供了兩種用于實(shí)現(xiàn)上述粒子顯示方法的顯示裝置。
【專利說明】—種天氣粒子的顯示方法及其顯示裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種天氣粒子的顯示方法,特別是一種游戲天氣粒子的顯示方法;本發(fā)明還涉及一種天氣粒子的顯示裝置。
【背景技術(shù)】
[0002]在網(wǎng)絡(luò)游戲中,天氣系統(tǒng)已經(jīng)成為一個(gè)很重要的模塊。通過各種天氣效果,比如白天、黑夜、下雨、刮風(fēng)等增強(qiáng)場(chǎng)景的表現(xiàn)力,讓玩家更好地沉浸到游戲的氛圍中。同時(shí)也可以通過天氣系統(tǒng)和玩家進(jìn)行交互,增強(qiáng)游戲的體驗(yàn)性。
[0003]在3D游戲中,在一個(gè)X、y、z三維坐標(biāo)系中,以X、y為平面,則深度值相當(dāng)于z軸坐標(biāo)值。相比于3D游戲的天氣效果,2D游戲沒有深度的概念,所有的天氣粒子效果在同一層次進(jìn)行渲染,會(huì)使得2D游戲天氣粒子效果缺乏層次感。
[0004]同時(shí),玩家在游戲場(chǎng)景中可以自由移動(dòng),當(dāng)場(chǎng)景呈現(xiàn)某種天氣時(shí),真實(shí)世界是整個(gè)場(chǎng)景都布滿了相應(yīng)的天氣粒子,但是考慮到游戲渲染的性能,故通常的做法是只在當(dāng)前屏幕產(chǎn)生和銷毀天氣粒子,但是當(dāng)玩家移動(dòng)時(shí),會(huì)觀察到天氣粒子呈現(xiàn)“井噴”或者斷續(xù)的現(xiàn)象。
【發(fā)明內(nèi)容】
[0005]本發(fā)明在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種天氣粒子的顯示方法,以及用于實(shí)現(xiàn)該方法的顯示裝置。
[0006]本發(fā)明是通過以下的技術(shù)方案實(shí)現(xiàn)的:一種天氣粒子的顯示方法,包括步驟:
[0007]對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變;
[0008]根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小和/或運(yùn)動(dòng)狀態(tài)。
[0009]相比于現(xiàn)有技術(shù),本發(fā)明通過對(duì)每個(gè)天氣粒子賦予一虛擬深度值,并根據(jù)該深度值的大小,獲取不同天氣粒子實(shí)際顯示的大小和運(yùn)動(dòng)狀態(tài)。由于不同天氣粒子的深度值不同,可以依據(jù)該深度值改變不同粒子的大小和運(yùn)動(dòng)狀態(tài),使2D游戲中的天氣粒子具備層次感。
[0010]作為本發(fā)明的進(jìn)一步改進(jìn),在根據(jù)虛擬深度值Z大小獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)的步驟中,具體是先根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),再根據(jù)該縮放因子f (Z),對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)。進(jìn)一步,可以根據(jù)虛擬值獲取一縮放因子,并通過該縮放因子對(duì)每個(gè)天氣粒子的縮放的方式,實(shí)現(xiàn)天氣粒子最終顯示的不同大小和運(yùn)動(dòng)狀態(tài)。
[0011]作為本發(fā)明的進(jìn)一步改進(jìn),所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z)=1-Z ;在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。進(jìn)一步,通過對(duì)虛擬值和縮放因子的設(shè)定,實(shí)現(xiàn)天氣粒子在屏幕中顯示“近大遠(yuǎn)小”的偽3D效果。
[0012]本發(fā)明還提供了另一種天氣粒子的顯示方法,包括步驟:
[0013]設(shè)定一生存區(qū)域,在該生存區(qū)域內(nèi)設(shè)定渲染區(qū)域;
[0014]發(fā)射天氣粒子,并對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z,在所述粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變;
[0015]對(duì)粒子的位置進(jìn)行判斷,若位于生存區(qū)域外,則進(jìn)行銷毀;若否,則根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小和運(yùn)動(dòng)狀態(tài);
[0016]對(duì)粒子的位置進(jìn)行判斷,若位于渲染區(qū)域外且位于生存區(qū)域內(nèi),則進(jìn)行剪裁;若位于渲染區(qū)域,則進(jìn)行渲染處理。
[0017]相比于現(xiàn)有技術(shù),本發(fā)明通過預(yù)緩存一些天氣粒子,使玩家在游戲場(chǎng)景移動(dòng)時(shí)觀測(cè)到的粒子是平滑連續(xù)。具體通過劃分為不同的區(qū)域,針對(duì)粒子在不同區(qū)域,對(duì)粒子進(jìn)行相應(yīng)的處理,從而解決天氣粒子在游戲場(chǎng)景的變換中忽然有大量的粒子產(chǎn)生和消失的現(xiàn)象。
[0018]進(jìn)一步,在所述生存區(qū)域中還設(shè)有一發(fā)射區(qū)域,所述天氣粒子從所述發(fā)射區(qū)域中發(fā)射。
[0019]作為本發(fā)明的進(jìn)一步改進(jìn),所述生存區(qū)域?yàn)橐痪艑m格;所述渲染區(qū)域位于九宮格的中心格,且該渲染區(qū)域?yàn)楫?dāng)前顯示區(qū)域。
[0020]作為本發(fā)明的進(jìn)一步改進(jìn),在根據(jù)虛擬深度值Z大小獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)的步驟中,具體是先根據(jù)天氣粒子的虛擬值大小Z獲取縮放因子f (Z),再根據(jù)該縮放因子f (Z),對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)。
[0021]作為本發(fā)明的進(jìn)一步改進(jìn),所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z)=1-Z ;在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
[0022]本發(fā)明還提供了一種天氣粒子顯示裝置,包括
[0023]深度值產(chǎn)生單元,用于對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z ;
[0024]粒子大小顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小;
[0025]粒子運(yùn)動(dòng)狀態(tài)顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子運(yùn)動(dòng)狀態(tài);其中,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變。
[0026]作為本發(fā)明的進(jìn)一步改進(jìn),還包括一縮放單元,用于根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),并根據(jù)該縮放因子f (Z),分別對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,并將縮放變換結(jié)果分別發(fā)送至粒子大小顯示單元和粒子運(yùn)動(dòng)狀態(tài)顯示單元。
[0027]作為本發(fā)明的進(jìn)一步改進(jìn),所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z)=1-Z ;所述縮放單元在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
[0028]本發(fā)明還提供了另一種天氣粒子顯示裝置,包括:
[0029]區(qū)域生成單元,用于生成一生存區(qū)域,以及在該生存區(qū)域內(nèi)分別生成一發(fā)射區(qū)域和一渲染區(qū)域;
[0030]發(fā)射單元,用以發(fā)射天氣粒子;
[0031]深度值產(chǎn)生單元,用于對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z ;
[0032]銷毀單元,用以銷毀位于生存區(qū)域外的天氣粒子;
[0033]粒子大小顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大??;
[0034]粒子運(yùn)動(dòng)狀態(tài)顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子運(yùn)動(dòng)狀態(tài);其中,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變;
[0035]剪裁單元,用以剪裁位于渲染區(qū)域外且位于生存區(qū)域內(nèi)的天氣粒子;
[0036]渲染單元,用以渲染進(jìn)入渲染區(qū)域內(nèi)的天氣粒子。
[0037]作為本發(fā)明的進(jìn)一步改進(jìn),所述生存區(qū)域?yàn)橐痪艑m格;所述渲染區(qū)域位于九宮格的中心格,且該渲染區(qū)域?yàn)楫?dāng)前顯示屏幕。
[0038]作為本發(fā)明的進(jìn)一步改進(jìn),還包括一縮放單元,用于根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),并根據(jù)該縮放因子f (Z),分別對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,并將縮放變換結(jié)果分別發(fā)送至粒子大小顯示單元和粒子運(yùn)動(dòng)狀態(tài)顯示單元。
[0039]作為本發(fā)明的進(jìn)一步改進(jìn),所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z)=1-Z ;所述縮放單元在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
[0040]為了更好地理解和實(shí)施,下面結(jié)合附圖詳細(xì)說明本發(fā)明。
【專利附圖】
【附圖說明】
[0041]圖1是實(shí)施例1的天氣粒子顯示方法的流程圖。
[0042]圖2是實(shí)施例1的天氣粒子顯示裝置的示意圖。
[0043]圖3是實(shí)施例2的天氣粒子顯示方法的流程圖。
[0044]圖4是實(shí)施例2的天氣粒子顯示裝置的流程圖。
[0045]圖5是實(shí)施例2的緩存區(qū)域的示意圖。
【具體實(shí)施方式】
[0046]實(shí)施例1
[0047]請(qǐng)參閱圖1,其為本發(fā)明的天氣粒子顯示方法的流程圖。
[0048]本發(fā)明的天氣粒子的顯示方法,包括步驟:
[0049]Sll:對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z。具體的,在本實(shí)施例中,所述虛擬深度值Z的范圍為O?I。
[0050]S12:根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z)。具體的,在本實(shí)施例中,所述縮放因子f (Z) = 1-Z0
[0051]S13:根據(jù)該縮放因子f (Z),對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換。具體的,在本實(shí)施例中,通過將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f(Z)進(jìn)行相乘,實(shí)現(xiàn)縮放變換。
[0052]S14:獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)。具體的,在本實(shí)施例中,所述粒子的運(yùn)動(dòng)參數(shù),包括粒子的速度、重力加速度、向心加速度、離心加速度等,從而實(shí)現(xiàn)粒子的不同的運(yùn)動(dòng)狀態(tài)。
[0053]以下通過一個(gè)例子做簡(jiǎn)要說明:如果當(dāng)前粒子的深度值為z,當(dāng)前時(shí)刻粒子的大小為S,當(dāng)前時(shí)刻粒子的速度為V,則考慮虛擬深度值影響后,粒子真實(shí)的大小s’和V’為:
[0054]s,= s*f (z)
[0055]V’ = v*f (z)
[0056]其中,在本方案實(shí)施例中f (z) = 1-Z0從而實(shí)現(xiàn)“近大遠(yuǎn)小”的偽3D效果。
[0057]而為了實(shí)現(xiàn)上述的粒子顯示方法,本發(fā)明還提供了對(duì)應(yīng)的實(shí)施上述方法的天氣粒子的顯示裝置。具體請(qǐng)參閱圖2,其為本發(fā)明的天氣粒子的顯示裝置的示意圖。
[0058]本發(fā)明的天氣粒子顯示裝置,包括深度值產(chǎn)生單元1、縮放單元2、粒子大小顯示單元3,以及粒子運(yùn)動(dòng)狀態(tài)顯示單元3。
[0059]所述深度值產(chǎn)生單元1,用于對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z。具體的,所述虛擬深度值Z的范圍為O?I,且在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變。
[0060]所述縮放單元2,用于根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),并根據(jù)該縮放因子f (Z),分別對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,并將縮放變換結(jié)果分別發(fā)送至粒子大小顯示單元和粒子運(yùn)動(dòng)狀態(tài)顯示單元。其中,所述縮放因子f(Z)=1-Z0具體的,所述縮放單元在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),通過將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘,實(shí)現(xiàn)縮放變換。
[0061]所述粒子大小顯示單元3,用于獲取縮放單元的天氣粒子大小數(shù)據(jù),并顯示實(shí)際粒子的大小。
[0062]所述粒子運(yùn)動(dòng)狀態(tài)顯示單元4,用于獲取縮放單元的天氣參數(shù)的數(shù)據(jù),并顯示實(shí)際粒子運(yùn)動(dòng)狀態(tài)。
[0063]相比于現(xiàn)有技術(shù),本發(fā)明通過對(duì)每個(gè)天氣粒子賦予一虛擬深度值,并根據(jù)該深度值的大小,獲取不同天氣粒子實(shí)際顯示的大小和運(yùn)動(dòng)狀態(tài)。由于不同天氣粒子的深度值不同,可以依據(jù)該深度值改變不同粒子的大小和運(yùn)動(dòng)狀態(tài),使2D游戲中的天氣粒子具備層次感。
[0064]進(jìn)一步,可以根據(jù)虛擬值獲取一縮放因子,并通過該縮放因子對(duì)每個(gè)天氣粒子的縮放的方式,實(shí)現(xiàn)天氣粒子最終顯示的不同大小和運(yùn)動(dòng)狀態(tài)。
[0065]進(jìn)一步,通過對(duì)虛擬值和縮放因子的設(shè)定,實(shí)現(xiàn)天氣粒子在屏幕中顯示“近大遠(yuǎn)小”的偽3D效果。當(dāng)粒子產(chǎn)生時(shí),對(duì)每個(gè)粒子都隨機(jī)賦予一虛擬深度值,每個(gè)粒子的虛擬深度值不同,為了實(shí)現(xiàn)天氣粒子在屏幕中顯示的“近大遠(yuǎn)小”的效果,因此需要將深度值大的粒子進(jìn)行縮小變化。因此,在本實(shí)施例中將虛擬深度值Z的范圍設(shè)定為O?1,并且相應(yīng)地可以將縮放因子f (Z)設(shè)定為:f(Z) = 1-Z0最終將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘,故粒子的虛擬深度值越大,則縮放因子f (Z)值越小,經(jīng)所述縮放因子的相乘之后,所得到的天氣粒子的變小,最終可以實(shí)現(xiàn)“近大遠(yuǎn)小”的偽3D效果。
[0066]實(shí)施例2
[0067]玩家在游戲場(chǎng)景中可以自由移動(dòng),當(dāng)場(chǎng)景呈現(xiàn)某種天氣時(shí),真實(shí)世界是整個(gè)場(chǎng)景都布滿了相應(yīng)的天氣粒子,但是考慮到游戲渲染的性能,故通常的做法是只在當(dāng)前顯示區(qū)域產(chǎn)生和銷毀天氣粒子,但是當(dāng)玩家移動(dòng)時(shí),會(huì)觀察到天氣粒子呈現(xiàn)“井噴”或者斷續(xù)的現(xiàn)象。當(dāng)玩家在游戲場(chǎng)景中快速移動(dòng)時(shí),“井噴”和“斷續(xù)”的情況是同時(shí)出現(xiàn)的,只是表現(xiàn)的空間位置不一樣。因?yàn)闆]有粒子緩存,快速移動(dòng)時(shí)當(dāng)前屏幕區(qū)域沒有粒子,粒子系統(tǒng)會(huì)大量產(chǎn)生天氣粒子以填充整個(gè)空間區(qū)域,所以在粒子產(chǎn)生的區(qū)域會(huì)有“井噴”的現(xiàn)象,在非粒子產(chǎn)生的區(qū)域會(huì)有“斷續(xù)”的現(xiàn)象。因此為了進(jìn)一步解決天氣粒子在游戲場(chǎng)景的變換中忽然有大量的粒子產(chǎn)生和消失,本發(fā)明通過預(yù)緩存天氣粒子的方式,使玩家在游戲場(chǎng)景移動(dòng)時(shí)觀測(cè)到的粒子是平滑連續(xù)。本發(fā)明的天氣粒子的顯示方法,包括步驟:
[0068]S21:設(shè)定一生存區(qū)域。在本實(shí)施例中,本發(fā)明基于九宮格的粒子系統(tǒng)緩存技術(shù),實(shí)現(xiàn)天氣粒子的緩存。具體的,設(shè)立一九宮格的緩存區(qū)域,該九宮格緩存區(qū)域?yàn)楸景l(fā)明的生存區(qū)域,包括了九個(gè)虛擬網(wǎng)格。
[0069]S22:在該生存區(qū)域內(nèi)設(shè)定一發(fā)射區(qū)域和一渲染區(qū)域。具體的,所述渲染區(qū)域位于九宮格的中心網(wǎng)格,且該渲染區(qū)域?yàn)楫?dāng)前顯示區(qū)域。所述發(fā)射區(qū)域可以位于九個(gè)格的任意位置,根據(jù)天氣粒子不同類型,可以有設(shè)置不同位置的發(fā)射區(qū)域,比如下雨時(shí)雨水的發(fā)射區(qū)域可以位于屏幕上方,沙塵暴粒子的發(fā)射區(qū)域可以位于屏幕的一端,即屏幕的左端或右端。具體的,在本實(shí)施例中,所述的生存區(qū)域和渲染區(qū)域是虛擬的區(qū)域,用以進(jìn)行邏輯判斷。這些區(qū)域是游戲制作使用編輯器編輯2D天氣產(chǎn)生的。
[0070]S23:天氣粒子從發(fā)射區(qū)域發(fā)射。
[0071]S24:對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z ;其中,所述虛擬深度值Z的范圍為O?1,且在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變。
[0072]對(duì)所發(fā)射粒子的位置進(jìn)行檢測(cè),若位于生存區(qū)域外,則進(jìn)行銷毀;若否,則執(zhí)行步驟 S25。
[0073]S25:根據(jù)天氣粒子的虛擬值大小Z獲取縮放因子f (Z);具體的,所述縮放因子f (Z) = 1-Z。
[0074]S26:根據(jù)該縮放因子f (Z),對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換。具體的,本實(shí)施例通過將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
[0075]S27:獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)。
[0076]S28:對(duì)粒子的位置進(jìn)行檢測(cè),若位于渲染區(qū)域外且位于生存區(qū)域內(nèi),則進(jìn)行剪裁;若位于渲染區(qū)域,則進(jìn)行渲染處理。其中,所述剪裁是指將所述粒子緩存在內(nèi)存或顯存中暫時(shí)不傳遞給渲染單元進(jìn)行渲染。所述渲染是指渲染單元對(duì)粒子及其他圖像數(shù)據(jù)進(jìn)行處理最后產(chǎn)生圖像的顯示數(shù)據(jù),之后在顯示設(shè)備中顯示出來。
[0077]為了實(shí)現(xiàn)上述的粒子顯示方法,本發(fā)明還提供了對(duì)應(yīng)的實(shí)施上述方法的天氣粒子的顯示裝置。具體請(qǐng)參閱圖2,其為本發(fā)明的天氣粒子的顯示裝置的示意圖。
[0078]本發(fā)明的天氣粒子顯示裝置,包括:區(qū)域生成單元5、發(fā)射單元6、渲染單元7、剪裁單元8、銷毀單元9、深度值產(chǎn)生單元1、縮放單元2、粒子大小顯示單元3,以及粒子運(yùn)動(dòng)狀態(tài)顯示單元4。
[0079]所述區(qū)域生成單元5,生成一生存區(qū)域,以及在該生存區(qū)域內(nèi)分別生成一發(fā)射區(qū)域和一渲染區(qū)域。具體的,所述生存區(qū)域?yàn)橐痪艑m格;所述渲染區(qū)域位于九宮格的中心格,且該渲染區(qū)域?yàn)楫?dāng)前顯示屏幕。
[0080]所述發(fā)射單元6,用以發(fā)射天氣粒子。
[0081]所述深度值產(chǎn)生單元1,用于對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z。具體的,所述虛擬深度值Z的范圍為O?I,且在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變。
[0082]所述銷毀單元9,用以銷毀位于生存區(qū)域外的天氣粒子。
[0083]所述縮放單元2,用于根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),并根據(jù)該縮放因子f (Z),分別對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,并將縮放變換結(jié)果分別發(fā)送至粒子大小顯示單元和粒子運(yùn)動(dòng)狀態(tài)顯示單元。其中,所述縮放因子f(Z)=1-Z0具體的,所述縮放單元在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),通過將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘,實(shí)現(xiàn)縮放變換。
[0084]所述粒子大小顯示單元3,用于獲取縮放單元的天氣粒子大小數(shù)據(jù),并顯示實(shí)際粒子的大小。
[0085]所述粒子運(yùn)動(dòng)狀態(tài)顯示單元4,用于獲取縮放單元的天氣參數(shù)的數(shù)據(jù),并顯示實(shí)際粒子運(yùn)動(dòng)狀態(tài)。
[0086]所述剪裁單元8,用以剪裁位于渲染區(qū)域外且位于生存區(qū)域內(nèi)的天氣粒子。
[0087]所述渲染單元7,用以渲染進(jìn)入渲染區(qū)域內(nèi)的天氣粒子。
[0088]以下通過一具體實(shí)例,介紹本發(fā)明的天氣粒子的緩存區(qū)域的示意圖。請(qǐng)參閱圖5,其為本發(fā)明的天氣粒子顯示的緩存區(qū)域的示意圖。
[0089]本發(fā)明基于九宮格的粒子系統(tǒng)緩存技術(shù),實(shí)現(xiàn)天氣粒子的緩存。具體的,在生存區(qū)域中511設(shè)定一渲染區(qū)域513和一發(fā)射區(qū)域512。其中,所述生存區(qū)域511包括了九個(gè)虛擬網(wǎng)格。
[0090]所述渲染區(qū)域513位于九宮格的中心網(wǎng)格,且該渲染區(qū)域513為當(dāng)前顯示區(qū)域。所述發(fā)射區(qū)域512可以位于九個(gè)格的任意位置,根據(jù)天氣粒子不同類型,可以有設(shè)置不同位置的發(fā)射區(qū)域,比如下雨時(shí)雨水的發(fā)射區(qū)域512可以位于屏幕上方,沙塵暴粒子的發(fā)射區(qū)域512可以位于屏幕的一端,即屏幕的左端或右端。
[0091]當(dāng)粒子從發(fā)射區(qū)域發(fā)射出后,根據(jù)粒子所處的區(qū)域位置,對(duì)所述粒子進(jìn)行相應(yīng)的處理。當(dāng)粒子位于渲染區(qū)域時(shí),則對(duì)該粒子進(jìn)行渲染處理。當(dāng)粒子位于生存區(qū)域外時(shí),對(duì)粒子進(jìn)行銷毀。當(dāng)粒子位于生存區(qū)域內(nèi),并位于渲染區(qū)域外時(shí),則對(duì)粒子進(jìn)行剪裁處理。所述剪裁處理,即將所述粒子進(jìn)行緩存,暫時(shí)保存在內(nèi)存或顯存中不做渲染處理。
[0092]當(dāng)使用九宮格粒子緩存技術(shù)后,玩家周邊的區(qū)域也會(huì)緩存天氣粒子,因此即使快速移動(dòng)切換空間位置,玩家所在的當(dāng)前區(qū)域也已經(jīng)填充了天氣粒子,粒子系統(tǒng)的粒子發(fā)射會(huì)比較平穩(wěn)。防止玩家在游戲場(chǎng)景中移動(dòng)時(shí),出現(xiàn)粒子“斷續(xù)”或“井噴”現(xiàn)象。
[0093]相比于現(xiàn)有技術(shù),本發(fā)明通過預(yù)緩存一些天氣粒子,使玩家在游戲場(chǎng)景移動(dòng)時(shí)觀測(cè)到的粒子是平滑連續(xù)。具體通過劃分為不同的區(qū)域,針對(duì)粒子在不同區(qū)域,對(duì)粒子進(jìn)行相應(yīng)的處理,從而解決天氣粒子在游戲場(chǎng)景的變換中忽然有大量的粒子產(chǎn)生和消失的現(xiàn)象。
[0094]本發(fā)明并不局限于上述實(shí)施方式,如果對(duì)本發(fā)明的各種改動(dòng)或變形不脫離本發(fā)明的精神和范圍,倘若這些改動(dòng)和變形屬于本發(fā)明的權(quán)利要求和等同技術(shù)范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變形。
【權(quán)利要求】
1.一種天氣粒子的顯示方法,其特征在于:包括步驟: 對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變; 根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小和/或運(yùn)動(dòng)狀態(tài)。
2.根據(jù)權(quán)利要求1所述天氣粒子的顯示方法,其特征在于:在根據(jù)虛擬深度值Z大小獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)的步驟中,包括以下步驟:先根據(jù)天氣粒子的虛擬值大小Z獲取縮放因子f (Z),再根據(jù)該縮放因子f (Z),對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)。
3.根據(jù)權(quán)利要求2所述天氣粒子的顯示方法,其特征在于:所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z) = 1-Z ;在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
4.一種天氣粒子的顯示方法,其特征在于:包括步驟: 設(shè)定一生存區(qū)域,在該生存區(qū)域內(nèi)設(shè)定渲染區(qū)域; 發(fā)射天氣粒子,并對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z,在所述粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變; 對(duì)粒子的位置進(jìn)行判斷,若位于生存區(qū)域外,則進(jìn)行銷毀;若否,則根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小和運(yùn)動(dòng)狀態(tài); 對(duì)粒子的位置進(jìn)行判斷,若位于渲染區(qū)域外且位于生存區(qū)域內(nèi),則進(jìn)行剪裁;若位于渲染區(qū)域,則進(jìn)行渲染處理。
5.根據(jù)權(quán)利要求4所述天氣粒子的顯示方法,其特征在于:在所述生存區(qū)域中還設(shè)有一發(fā)射區(qū)域,所述天氣粒子從所述發(fā)射區(qū)域中發(fā)射。
6.根據(jù)權(quán)利要求4所述天氣的顯示方法,其特征在于:所述生存區(qū)域?yàn)橐痪艑m格;所述渲染區(qū)域位于所述九宮格的中心格,且所述渲染區(qū)域?yàn)楫?dāng)前顯示區(qū)域。
7.根據(jù)權(quán)利要求4所述天氣粒子的顯示方法,其特征在于:在根據(jù)虛擬深度值Z大小獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)的步驟為先根據(jù)天氣粒子的虛擬深度值Z獲取縮放因子f (Z),再根據(jù)該縮放因子f (Z),對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,獲取實(shí)際顯示的粒子的大小和運(yùn)動(dòng)狀態(tài)。
8.根據(jù)權(quán)利要求7所述天氣粒子的顯示方法,其特征在于:所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z) = 1-Z ;在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
9.一種天氣粒子顯示裝置,其特征在于:包括 深度值產(chǎn)生單元,用于對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z ; 粒子大小顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大?。? 粒子運(yùn)動(dòng)狀態(tài)顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子運(yùn)動(dòng)狀態(tài);其中,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變。
10.根據(jù)權(quán)利要求9所述天氣粒子顯示裝置,其特征在于:還包括一縮放單元,用于根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),并根據(jù)該縮放因子f (Z),分別對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,并將縮放變換結(jié)果分別發(fā)送至粒子大小顯示單元和粒子運(yùn)動(dòng)狀態(tài)顯示單元。
11.根據(jù)權(quán)利要求9所述天氣粒子顯示裝置,其特征在于:所述虛擬深度值Z的范圍為O?1,所述縮放因子f (Z) = 1-Z ;所述縮放單元在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
12.—種天氣粒子顯示裝置,其特征在于:包括: 區(qū)域生成單元,用于生成一生存區(qū)域,以及在該生存區(qū)域內(nèi)的分別生成一發(fā)射區(qū)域和一渲染區(qū)域; 發(fā)射單元,用以發(fā)射天氣粒子; 深度值產(chǎn)生單元,用于對(duì)每個(gè)天氣粒子賦予一隨機(jī)的虛擬深度值Z ; 銷毀單元,用以銷毀位于生存區(qū)域外的天氣粒子; 粒子大小顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子大小; 粒子運(yùn)動(dòng)狀態(tài)顯示單元,用于根據(jù)所述粒子的虛擬深度值Z的大小,獲取實(shí)際顯示的粒子運(yùn)動(dòng)狀態(tài);其中,在該粒子的整個(gè)生命周期中,所述虛擬深度值Z保持不變; 剪裁單元,用以剪裁位于渲染區(qū)域外且位于生存區(qū)域內(nèi)的天氣粒子; 渲染單元,用以渲染進(jìn)入渲染區(qū)域內(nèi)的天氣粒子。
13.根據(jù)權(quán)利要求12所述天氣粒子的顯示裝置,其特征在于:所述生存區(qū)域?yàn)橐痪艑m格;所述渲染區(qū)域位于九宮格的中心格,且該渲染區(qū)域?yàn)楫?dāng)前顯示屏幕。
14.根據(jù)權(quán)利要求12所述天氣粒子的顯示裝置,其特征在于:還包括一縮放單元,用于根據(jù)天氣粒子的虛擬值大小Z,獲取縮放因子f (Z),并根據(jù)該縮放因子f (Z),分別對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換,并將縮放變換結(jié)果分別發(fā)送至粒子大小顯示單元和粒子運(yùn)動(dòng)狀態(tài)顯示單元。
15.根據(jù)權(quán)利要求14所述天氣粒子顯示裝置,其特征在于:所述虛擬深度值Z的范圍為O?I,所述縮放因子f (Z) = 1-Z ;所述縮放單元在對(duì)每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)進(jìn)行縮放變換時(shí),具體是將每個(gè)天氣粒子的大小和運(yùn)動(dòng)參數(shù)分別與縮放因子f (Z)進(jìn)行相乘。
【文檔編號(hào)】G06T13/80GK104392475SQ201410568861
【公開日】2015年3月4日 申請(qǐng)日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】張磊 申請(qǐng)人:廣州博冠信息科技有限公司