一種基于幾何特征的高精度流體動(dòng)畫建模方法
【專利摘要】本發(fā)明公開了一種基于幾何特征的高精度流體動(dòng)畫建模方法,包括以下步驟:對流體物理模型中的初始條件和邊界條件進(jìn)行初始化;從流體的物理模型中獲取幾何特征計(jì)算所需要的中間速度場、當(dāng)前時(shí)間步中的流體速度場和符號距離場函數(shù)參數(shù);構(gòu)建流體動(dòng)畫的幾何模型,對流體動(dòng)畫中的細(xì)節(jié)敏感區(qū)域進(jìn)行自動(dòng)化定位、量化和跟蹤;根據(jù)幾何特征的特征函數(shù),控制物理模型的粒子集,耦合幾何模型和物理模型;提取表示流體表面和流體水花的三角形網(wǎng)格表面,并對其進(jìn)行真實(shí)感渲染,生成一幀流體動(dòng)畫;本發(fā)明能有效地產(chǎn)生高精度的流體水面和水花等細(xì)節(jié)效果,實(shí)現(xiàn)高精度流體動(dòng)畫的自動(dòng)化生成,具有精度好、效率高的特點(diǎn)。
【專利說明】一種基于幾何特征的高精度流體動(dòng)畫建模方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于幾何特征的高精度流體動(dòng)畫建模方法。
【背景技術(shù)】
[0002] 流體動(dòng)畫在虛擬現(xiàn)實(shí)、動(dòng)漫特效、互動(dòng)游戲、建筑設(shè)計(jì)、產(chǎn)品展示、醫(yī)學(xué)、軍事模擬 仿真等方面有著廣泛的應(yīng)用。在這些流體動(dòng)畫中,視覺逼真性是最基本的追求。然而,目前 很多流體動(dòng)畫都是動(dòng)畫師在工具軟件中手工制作。由于流體運(yùn)動(dòng)非常復(fù)雜,即使是具有豐 富經(jīng)驗(yàn)的動(dòng)畫師,也很難隨心所欲的設(shè)計(jì)想要的動(dòng)畫。此外流體動(dòng)畫制作速度很慢、成本 高,是典型的"勞動(dòng)密集型"產(chǎn)業(yè)。因此,如何自動(dòng)生成具有豐富細(xì)節(jié)的流體動(dòng)畫是一項(xiàng)很 有挑戰(zhàn)性的問題。傳統(tǒng)的流體動(dòng)畫方法存在計(jì)算代價(jià)高、效率低且流體細(xì)節(jié)容易丟失的問 題,難以生成視覺逼真的高精度流體動(dòng)畫。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明為了解決上述問題,提出了一種基于幾何特征的高精度流體動(dòng)畫建模方 法,本方法該方法通過對視覺逼真的高精度流體動(dòng)畫自動(dòng)化生成,有效提高其在計(jì)算機(jī)圖 形學(xué)、計(jì)算機(jī)動(dòng)畫、特效制作、游戲娛樂等應(yīng)用領(lǐng)域中的處理效率,為進(jìn)一步推動(dòng)動(dòng)漫行業(yè) 從"勞動(dòng)密集型"到"技術(shù)密集型"轉(zhuǎn)型,拓展其應(yīng)用領(lǐng)域和范圍奠定理論基礎(chǔ)。
[0004] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0005] -種基于幾何特征的高精度流體動(dòng)畫建模方法,包括以下步驟:
[0006] (1)對流體物理模型中的初始條件和邊界條件進(jìn)行初始化;
[0007] (2)從流體的物理模型中獲取幾何特征計(jì)算所需要的中間速度場、當(dāng)前時(shí)間步中 的流體速度場和符號距離場函數(shù)參數(shù);
[0008] (3)構(gòu)建流體動(dòng)畫的幾何模型,對流體動(dòng)畫中的細(xì)節(jié)敏感區(qū)域進(jìn)行自動(dòng)化定位、量 化和跟蹤;
[0009] (4)根據(jù)幾何特征的特征函數(shù),控制物理模型的粒子集,耦合幾何模型和物理模 型;
[0010] (5)提取表示流體表面和流體水花的三角形網(wǎng)格表面,并對其進(jìn)行真實(shí)感渲染,生 成一幀流體動(dòng)畫;
[0011] (6)查看是否完成全部流體動(dòng)畫的制作,如果未完成,則返回步驟(2),繼續(xù)進(jìn)行 制作。
[0012] 所述步驟(1)中,物理模型初始化的步驟包括:
[0013] (1-1)初始化背景網(wǎng)格中的流體速度場U;
[0014] (1-2)初始化表示流體表面的符號距離場函數(shù)小;
[0015] (1-3)初始化對流體表面進(jìn)行檢測校正的粒子集P。和表示流體水花的粒子集Ps ;
[0016] (1-4)初始化邊界,即使用標(biāo)記位表示流體計(jì)算域中的每個(gè)網(wǎng)格單元的類型;為 此需要將固體障礙物按計(jì)算域網(wǎng)格單元尺寸離散化,離散化后被固體占據(jù)的網(wǎng)格單元標(biāo)記 位設(shè)置為I,否則設(shè)置為O。
[0017] 所述步驟(2)中,從流體的物理模型中獲取幾何特征的具體方法如下:
[0018] (2-1)根據(jù)初始化背景網(wǎng)格中的流體速度場u,粒子集Ps中的速度計(jì)算背景網(wǎng)格 中的中間速度場;
[0019] (2-2)根據(jù)中間速度場,通過求解耦合歐拉和拉格朗日兩種模型的壓強(qiáng)泊松方程, 獲取當(dāng)前時(shí)間步中的流體速度場un+1;
[0020] (2-3)根據(jù)所獲得的當(dāng)前時(shí)間步流體速度場,計(jì)算更新后的符號距離場函數(shù)(K+1。
[0021] 所述步驟(3)中,建立流體動(dòng)畫的幾何模型,對流體動(dòng)畫中的細(xì)節(jié)敏感區(qū)域進(jìn)行 自動(dòng)化定位、量化和跟蹤的基本步驟如下:
[0022] (3-1)構(gòu)建封閉流形,由封閉流體界面或者非封閉的流體界面與計(jì)算域邊界形成, 封閉流形邊界及其周圍3層網(wǎng)格稱為窄帶區(qū)域;
[0023] (3-2)定義局部中軸(LocalMedialAxis,LMA)為封閉流形中位于窄帶Qb上的 內(nèi)接圓圓心的軌跡;
[0024] (3-3)根據(jù)Step2中獲得的符號距離場函數(shù)(K+1,使用散度值判斷法計(jì)算LM;
[0025] (3-4)根據(jù)局部中軸,定義定位量化函數(shù)(LocationandQuantization Function,LF),對于流形邊界上的網(wǎng)格點(diǎn),其函數(shù)值為給定閾值A(chǔ)與該點(diǎn)到局部中軸距離 值的較小值;窄帶區(qū)域上其他網(wǎng)格點(diǎn)的定位量化函數(shù)值為該點(diǎn)到流形邊界的最短距離加上 流形邊界對應(yīng)點(diǎn)的定位量化函數(shù)值;對于計(jì)算域上其他網(wǎng)格點(diǎn)的定位量化函數(shù)值將其設(shè)置 為一個(gè)大常數(shù),定位量化函數(shù)能夠?qū)崿F(xiàn)對大曲率、細(xì)長和邊界細(xì)節(jié)敏感區(qū)域的光滑定位和 量化;
[0026] (3-5)根據(jù)定位量化函數(shù)的定義,通過使用KD檢索的方法,計(jì)算流體表面上網(wǎng)格 點(diǎn)的定位量化函數(shù)值;
[0027] (3-6)根據(jù)定位量化函數(shù)的定義,通過使用快速行進(jìn)算法對流形邊界點(diǎn)的定位量 化函數(shù)值外推,計(jì)算窄帶域上其他網(wǎng)格點(diǎn)的定位量化函數(shù)值;
[0028](3-7)根據(jù)定位量化函數(shù)的定義,設(shè)定背景網(wǎng)格中窄帶域以外的定位量化函數(shù)值 為大常數(shù),指定為NmaxXAh,其中Nmax為計(jì)算域在x、y、z三個(gè)軸向上網(wǎng)格個(gè)數(shù)的最大值,Ah 為網(wǎng)格單元的尺寸。
[0029] (3-8)在每個(gè)時(shí)間步中累積計(jì)算流體表面的變形程度,如果變形程度小于設(shè)定閾 值,則需要對定位量化函數(shù)進(jìn)行對流更新;否則需要對定位量化函數(shù)進(jìn)行重新初始化。
[0030] 所述步驟(4)中,其具體方法為:
[0031] (4-1)將當(dāng)前時(shí)間步n的定位量化函數(shù)值LFn映射為粒子的分布密度pn(x);
[0032] (4-2)根據(jù)pn(X)計(jì)算需要增/刪的粒子數(shù)義,(X);
[0033] (4-3)在網(wǎng)格單元X中增加或刪除-VL(X)個(gè)粒子,得到更新后的粒子集和
[0034] (4-4)更新iTM中粒子的速度和位置,然后利用它們檢測和校正C1的誤差,得符 號距離場函數(shù)cK+1 ;
[0035] (4-5)更新if?中粒子的速度和位置,得下一個(gè)時(shí)間步n+1的水花粒子集if+1。
[0036] 所述步驟(5)中,具體方法包括:
[0037] (5-1)使用移動(dòng)立方體算法,從表示流體表面的符號距離場函數(shù)(K+1中提取零等 值面,獲得流體表面的三角形網(wǎng)格表面;
[0038] (5-2)使用構(gòu)建粒子局部水平集算法,從粒子集C+1中獲取表示水花粒子的符號 距離場函數(shù)<+1,然后再使用移動(dòng)立方體算法,獲得表示水花的零等值面。
[0039] 本發(fā)明的有益效果為:
[0040] (1)采用基于幾何特征的方法實(shí)現(xiàn)對流體動(dòng)畫的高精度建模,通過獲取幾何參數(shù)、 建立幾何模型、幾何模型與物理模型耦合等過程,充分挖掘并使用流體細(xì)節(jié)之間的相關(guān)性 以及流體表面不同區(qū)域的差異性等幾何特征,實(shí)現(xiàn)高精度流體動(dòng)畫的自動(dòng)化生成;
[0041] (2)利用定位量化函數(shù)能夠有效的反映水面運(yùn)動(dòng)湍急、水花飛濺等細(xì)節(jié)產(chǎn)生的位 置及細(xì)節(jié)的多少;
[0042] (3)該方法具有精度高、高效性的特點(diǎn)。
【專利附圖】
【附圖說明】
[0043] 圖1為本發(fā)明的流程示意圖。
【具體實(shí)施方式】:
[0044] 下面結(jié)合附圖與實(shí)施例對本發(fā)明作進(jìn)一步說明。
[0045]如圖1所示,基于幾何特征的高精度流體動(dòng)畫建模方法主要包括以下幾個(gè)過程:
[0046] 過程1:初始化;
[0047] 第一步:初始化液體表面。令Q表示計(jì)算域,計(jì)算域網(wǎng)格記為G。令符號距離場 函數(shù)?。▁,t)表示液體表面,其函數(shù)值為t時(shí)刻網(wǎng)格中心X到液體表面的符號距離。顯然, 在液體表面上,滿足$ (X,t)=0,記為液體內(nèi)部滿足4)(x,t)<0,記為;在液體外 部滿足<Hx,t) > 0,記為Q+。
[0048] 第二步:初始化流體速度場u。指定計(jì)算域網(wǎng)格G上的三個(gè)三維數(shù)值分別代表速 度場u的x、y、z分量,在液體外部Q+區(qū)域上,三個(gè)分量的值均為0 ;而在液體表面及內(nèi)部 區(qū)域上根據(jù)具體算例指定為非零值。
[0049] 第三步:初始化檢測校正粒子集P。。在流體表面陽內(nèi)部及外部三層網(wǎng)格上初始化 檢測校正粒子集P。。對于P。中的每個(gè)粒子:其位置是在內(nèi)外三層網(wǎng)格內(nèi)隨機(jī)生成,其半徑 為0. 1-0. 5個(gè)網(wǎng)格單元的大小,其速度是根據(jù)粒子所在位置從初始化的速度場u中插值得 到。
[0050] 第四步:初始化表示水花的粒子集Ps為空。
[0051] 第五步:初始化邊界條件。將流體運(yùn)動(dòng)所在的環(huán)境模型利用體素化方法轉(zhuǎn)化為方 程計(jì)算時(shí)可識別的邊界。它包含兩個(gè)部分:固體與液體邊界、空氣和液體邊界。本文使用 flag標(biāo)記位標(biāo)識。flag= 0表示被固體占據(jù)的單元網(wǎng)格;flag= 1表示液體單元;flag= 2表示空氣單元。
[0052] 過程2:根據(jù)當(dāng)前流體速度場u和粒子集Ps獲取計(jì)算域網(wǎng)格中的中間速度場u'
[0053] 第一步:令當(dāng)前時(shí)間步為n,計(jì)算域網(wǎng)格G中的流體速度場為un,SPH粒子集Ps中 的粒子速度為<。為了計(jì)算動(dòng)態(tài)流體速度場un+1,需要求解流體運(yùn)動(dòng)的NS方程
【權(quán)利要求】
1. 一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:包括以下步驟: (1) 對流體物理模型中的初始條件和邊界條件進(jìn)行初始化; (2) 從流體的物理模型中獲取幾何特征計(jì)算所需要的中間速度場、當(dāng)前時(shí)間步中的流 體速度場和符號距離場函數(shù)參數(shù); (3) 構(gòu)建流體動(dòng)畫的幾何模型,對流體動(dòng)畫中的細(xì)節(jié)敏感區(qū)域進(jìn)行自動(dòng)化定位、量化和 跟蹤; (4) 根據(jù)幾何特征的特征函數(shù),控制物理模型的粒子集,耦合幾何模型和物理模型; (5) 提取表示流體表面和流體水花的三角形網(wǎng)格表面,并對其進(jìn)行真實(shí)感渲染,生成一 幀流體動(dòng)畫; (6) 查看是否完成全部流體動(dòng)畫的制作,如果未完成,則返回步驟(2),繼續(xù)進(jìn)行制作。
2. 如權(quán)利要求1所述的一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:所 述步驟(1)中,物理模型初始化的步驟包括: (1-1)初始化背景網(wǎng)格中的流體速度場u; (1-2)初始化表示流體表面的符號距離場函數(shù)Φ; (1-3)初始化對流體表面進(jìn)行檢測校正的粒子集P。和表示流體水花的粒子集Ps ; (1-4)初始化邊界,即使用標(biāo)記位表示流體計(jì)算域中的每個(gè)網(wǎng)格單元的類型;為此需 要將固體障礙物按計(jì)算域網(wǎng)格單元尺寸離散化,離散化后被固體占據(jù)的網(wǎng)格單元標(biāo)記位設(shè) 置為1,否則設(shè)置為0。
3. 如權(quán)利要求1所述的一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:所 述步驟(2)中,從流體的物理模型中獲取幾何特征的具體方法如下: (2-1)根據(jù)初始化背景網(wǎng)格中的流體速度場u,粒子集Ps中的速度計(jì)算背景網(wǎng)格中的 中間速度場; (2-2)根據(jù)中間速度場,通過求解耦合歐拉和拉格朗日兩種模型的壓強(qiáng)泊松方程,獲取 當(dāng)前時(shí)間步中的流體速度場un+1 ; (2-3)根據(jù)所獲得的當(dāng)前時(shí)間步流體速度場,計(jì)算更新后的符號距離場函數(shù)Φη+1。
4. 如權(quán)利要求1所述的一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:所 述步驟(3)中,建立流體動(dòng)畫的幾何模型,對流體動(dòng)畫中的細(xì)節(jié)敏感區(qū)域進(jìn)行自動(dòng)化定位、 量化和跟蹤的基本步驟如下: (3-1)構(gòu)建封閉流形,由封閉流體界面或者非封閉的流體界面與計(jì)算域邊界形成,封閉 流形邊界及其周圍3層網(wǎng)格稱為窄帶區(qū)域; (3-2)定義局部中軸為封閉流形中位于窄帶Qb上的內(nèi)接圓圓心的軌跡; (3-3)根據(jù)Step2中獲得的符號距離場函數(shù)Φη+1,使用散度值判斷法計(jì)算LM; (3-4)根據(jù)局部中軸,定義定位量化函數(shù); (3-5)根據(jù)定位量化函數(shù)的定義,通過使用KD檢索的方法,計(jì)算流體表面上網(wǎng)格點(diǎn)的 定位量化函數(shù)值; (3-6)根據(jù)定位量化函數(shù)的定義,通過使用快速行進(jìn)算法對流形邊界點(diǎn)的定位量化函 數(shù)值外推,計(jì)算窄帶域上其他網(wǎng)格點(diǎn)的定位量化函數(shù)值; (3-7)根據(jù)定位量化函數(shù)的定義,設(shè)定背景網(wǎng)格中窄帶域以外的定位量化函數(shù)值為大 常數(shù),指定為NmaxXAh,其中Nmax為計(jì)算域在x、y、ζ三個(gè)軸向上網(wǎng)格個(gè)數(shù)的最大值,Ah為 網(wǎng)格單元的尺寸; (3-8)在每個(gè)時(shí)間步中累積計(jì)算流體表面的變形程度,如果變形程度小于設(shè)定閾值,則 需要對定位量化函數(shù)進(jìn)行對流更新;否則需要對定位量化函數(shù)進(jìn)行重新初始化。
5. 如權(quán)利要求4所述的一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:所 述步驟(3-4)中,具體方法為:根據(jù)局部中軸,定義定位量化函數(shù),對于流形邊界上的網(wǎng)格 點(diǎn),其函數(shù)值為給定閾值λ與該點(diǎn)到局部中軸距離值的較小值;窄帶區(qū)域上其他網(wǎng)格點(diǎn)的 定位量化函數(shù)值為該點(diǎn)到流形邊界的最短距離加上流形邊界對應(yīng)點(diǎn)的定位量化函數(shù)值;對 于計(jì)算域上其他網(wǎng)格點(diǎn)的定位量化函數(shù)值將其設(shè)置為一個(gè)大常數(shù),定位量化函數(shù)能夠?qū)崿F(xiàn) 對大曲率、細(xì)長和邊界細(xì)節(jié)敏感區(qū)域的光滑定位和量化。
6. 如權(quán)利要求1所述的一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:所 述步驟(4)中,其具體方法為: (4-1)將當(dāng)前時(shí)間步η的定位量化函數(shù)值LFn映射為粒子的分布密度ρη(Χ); (4-2)根據(jù)ρη(Χ)計(jì)算需要增/刪的粒子數(shù)%(X); (4-3)在網(wǎng)格單元X中增加或刪除個(gè)粒子,得到更新后的粒子集if-和/T; (4-4)更新iT"中粒子的速度和位置,然后利用它們檢測和校正也+1的誤差,得符號距 離場函數(shù)Φη+1 ; (4-5)更新iTu'中粒子的速度和位置,得下一個(gè)時(shí)間步η+1的水花粒子集iT1。
7. 如權(quán)利要求1所述的一種基于幾何特征的高精度流體動(dòng)畫建模方法,其特征是:所 述步驟(5)中,具體方法包括: (5-1)使用移動(dòng)立方體算法,從表示流體表面的符號距離場函數(shù)Φη+1中提取零等值 面,獲得流體表面的三角形網(wǎng)格表面; (5-2)使用構(gòu)建粒子局部水平集算法,從粒子集iT1中獲取表示水花粒子的符號距離 場函數(shù)^r1,然后再使用移動(dòng)立方體算法,獲得表示水花的零等值面。
【文檔編號】G06T13/20GK104318599SQ201410676676
【公開日】2015年1月28日 申請日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】張桂娟, 陸佃杰, 呂蕾, 劉弘 申請人:山東師范大學(xué)