基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法
【專利摘要】本發(fā)明涉及一種基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,包括步驟:根據(jù)初始角色模型的骨架結(jié)構(gòu),將初始角色模型劃分為關(guān)節(jié)區(qū)域和骨骼區(qū)域,并手動(dòng)標(biāo)定骨骼區(qū)域間的變形控制點(diǎn);根據(jù)用戶設(shè)定的形體縮放參數(shù)以及標(biāo)定的變形控制點(diǎn),基于自由變形技術(shù)對(duì)初始角色模型的骨骼區(qū)域進(jìn)行幾何變形操作;在幾何變形后,調(diào)整關(guān)節(jié)對(duì)頂點(diǎn)的影響權(quán)重;根據(jù)關(guān)節(jié)對(duì)關(guān)節(jié)區(qū)域和骨骼區(qū)域上頂點(diǎn)的影響權(quán)重,采用雙四元數(shù)法驅(qū)動(dòng)角色模型進(jìn)行平移和旋轉(zhuǎn)運(yùn)動(dòng),生成生動(dòng)逼真的皮膚變形效果。本發(fā)明能夠處理模型動(dòng)作幅度較大時(shí)引起的坍塌、形狀爆炸等缺陷,在保證實(shí)時(shí)性的同時(shí)獲得更加真實(shí)的皮膚變形。
【專利說(shuō)明】基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)動(dòng)畫(huà)和計(jì)算機(jī)圖形學(xué)【技術(shù)領(lǐng)域】,具體涉及基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)硬件技術(shù)以及計(jì)算機(jī)軟件技術(shù),尤其是圖形圖像技術(shù)的發(fā)展,三維角色動(dòng)畫(huà)技術(shù)在影視動(dòng)畫(huà)、娛樂(lè)游戲、遠(yuǎn)程教育和軍事仿真等領(lǐng)域得到廣泛應(yīng)用。皮膚變形技術(shù)作為三維角色動(dòng)畫(huà)的一個(gè)重要部分,是計(jì)算機(jī)圖形學(xué)中最有難度和挑戰(zhàn)性的研究課題之一,主要有兩個(gè)原因:(I)人體本身的結(jié)構(gòu)非常復(fù)雜,在生物力學(xué)和圖形學(xué)領(lǐng)域都尚未出現(xiàn)能夠完全逼近并仿真人體皮膚的模型;與此同時(shí),人類對(duì)自身的形狀非常敏感,很容易觀察到人體皮膚的失真變形。(2)實(shí)時(shí)性和真實(shí)感之間相互制約,為了獲得高度真實(shí)感的皮膚變形,需要建立復(fù)雜的人體模型,并進(jìn)行大量物理計(jì)算,從而影響了變形算法的效率,難以達(dá)到實(shí)時(shí)性;反之,為了獲得實(shí)時(shí)性,往往要采用簡(jiǎn)單的人體模型和簡(jiǎn)化的算法,其代價(jià)是降低了皮膚變形的真實(shí)感。然而實(shí)際上,在游戲、動(dòng)畫(huà)和虛擬仿真環(huán)境等許多應(yīng)用中,需要同時(shí)滿足真實(shí)感和實(shí)時(shí)性兩個(gè)要求,這是皮膚變形技術(shù)研究的一大挑戰(zhàn)。
[0003]目前按照變形所采用的方法,可將現(xiàn)有的皮膚變形方法分為兩大類:
[0004]第一類是基于幾何的皮膚變形。這類方法不考慮人體的物理屬性,純粹利用幾何方法進(jìn)行人體建模和皮膚變形。這類方法一般將角色模型分為兩個(gè)層次:第一層為骨架層,按照角色身體的層次關(guān)系排列,形成角色動(dòng)畫(huà)系統(tǒng)的基礎(chǔ);第二層為皮膚層,由多邊形或曲面組成的表面模擬皮膚的幾何外形。皮膚層包裹在骨架周圍,其變形由底層的骨架驅(qū)動(dòng)。這類方法具有簡(jiǎn)單、快速的特點(diǎn),但由于較少考慮生物解剖結(jié)構(gòu),對(duì)復(fù)雜的運(yùn)動(dòng)狀態(tài)或變形強(qiáng)度大的角色不能適用,對(duì)于表現(xiàn)物理真實(shí)性角色的運(yùn)動(dòng)效果不是很好。
[0005]第二類是基于物理的皮膚變形。這類方法針對(duì)人體內(nèi)部組織進(jìn)行幾何建模,然后根據(jù)質(zhì)量、剛度等物理和屬性建立物理模型,建立力學(xué)方程,得到人體皮膚的物理變形。這類方法能夠獲得視覺(jué)真實(shí)感和物理真實(shí)感的雙重逼真效果;然而,人體結(jié)構(gòu)的復(fù)雜性和物理計(jì)算的繁瑣,使得這類模型的計(jì)算速度非常慢,即使最新的高度優(yōu)化的算法也不能達(dá)到實(shí)時(shí)性。
【發(fā)明內(nèi)容】
[0006](一 )要解決的技術(shù)問(wèn)題
[0007]本發(fā)明的目的是提供一種基于幾何的虛擬角色模型皮膚變形的方法,使其在復(fù)雜的運(yùn)動(dòng)狀態(tài)或變形幅度較大時(shí)不易發(fā)生褶皺、穿插等錯(cuò)誤,呈現(xiàn)形變速度快、質(zhì)量高等運(yùn)動(dòng)效果。
[0008]( 二 )技術(shù)方案
[0009]為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其包括如下步驟:[0010]步驟1:根據(jù)初始角色模型的骨架結(jié)構(gòu),將初始角色模型劃分為關(guān)節(jié)區(qū)域和骨骼區(qū)域,并手動(dòng)標(biāo)定骨骼區(qū)域間的變形控制點(diǎn);
[0011]步驟2:根據(jù)用戶設(shè)定的形體縮放參數(shù)以及標(biāo)定的變形控制點(diǎn),基于自由變形技術(shù)對(duì)初始角色模型的骨骼區(qū)域進(jìn)行幾何變形操作;
[0012]步驟3:在幾何變形后,調(diào)整關(guān)節(jié)對(duì)頂點(diǎn)的影響權(quán)重;
[0013]步驟4:根據(jù)關(guān)節(jié)對(duì)關(guān)節(jié)區(qū)域和骨骼區(qū)域上頂點(diǎn)的影響權(quán)重,采用雙四元數(shù)法驅(qū)動(dòng)角色模型進(jìn)行平移和旋轉(zhuǎn)運(yùn)動(dòng),生成生動(dòng)逼真的皮膚變形效果。
[0014](三)有益效果
[0015]本發(fā)明針對(duì)虛擬角色動(dòng)畫(huà)提出了一種新的角色模型制作及其皮膚變形方法,將離線優(yōu)化處理與在線實(shí)時(shí)計(jì)算相結(jié)合,克服了傳統(tǒng)基于幾何的皮膚變形方法在復(fù)雜的運(yùn)動(dòng)狀態(tài)或變形幅度較大時(shí)易發(fā)生畸變等缺點(diǎn)。本發(fā)明能夠在保證實(shí)時(shí)性的同時(shí)獲得與基于物理的變形方法相似的皮膚變形效果,提高了三維角色動(dòng)畫(huà)制作效率和互動(dòng)應(yīng)用體驗(yàn)的真實(shí)性。
【專利附圖】
【附圖說(shuō)明】
[0016]圖1是本發(fā)明中基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法的基本流程圖。
[0017]圖2是本發(fā)明的模型骨骼區(qū)域控制點(diǎn)的示意圖。
[0018]圖3是本發(fā)明的模型區(qū)域劃分流程圖。
[0019]圖4是本發(fā)明的小腿模型劃分的效果圖,為膝關(guān)節(jié)區(qū)域和小腿骨骼區(qū)域。
[0020]圖5是本發(fā)明的幾何變形流程圖。
[0021]圖6是本發(fā)明的小腿自由變形Bezier控制體的包圍體。
[0022]圖7是本發(fā)明的皮膚權(quán)重調(diào)整流程圖。
[0023]圖8是本發(fā)明的熱平衡計(jì)算的結(jié)果圖。
[0024]圖9是本發(fā)明的驅(qū)動(dòng)模型運(yùn)動(dòng)流程圖。
[0025]圖10是本發(fā)明在扭曲幅度較大時(shí)與常規(guī)方法的比較圖。
[0026]圖11是本發(fā)明在拉伸幅度較大時(shí)的效果圖。
【具體實(shí)施方式】
[0027]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
[0028]圖1示出了本發(fā)明提出的基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形的方法流程圖。如圖1所示,該方法主要分為四個(gè)基本步驟:
[0029](I)模型預(yù)處理步驟:根據(jù)初始模型的骨架結(jié)構(gòu),將模型劃分為關(guān)節(jié)區(qū)域和骨骼區(qū)域,并手動(dòng)標(biāo)定骨骼區(qū)域的變形控制點(diǎn);
[0030](2)幾何變形步驟:根據(jù)用戶設(shè)定的形體縮放參數(shù),基于自由變形技術(shù)對(duì)模型的骨骼區(qū)域進(jìn)行拉伸等幾何變形操作;
[0031](3)權(quán)重調(diào)整步驟:模型幾何變形后,模型關(guān)節(jié)區(qū)域的頂點(diǎn)相對(duì)關(guān)節(jié)位置發(fā)生變化,重新計(jì)算該區(qū)域頂點(diǎn)的權(quán)重;
[0032](4)驅(qū)動(dòng)模型運(yùn)動(dòng)步驟:在模型完成幾何變形和皮膚權(quán)重調(diào)整后,采用雙四元數(shù)法驅(qū)動(dòng)模型進(jìn)行平移和旋轉(zhuǎn)運(yùn)動(dòng),生成生動(dòng)逼真的皮膚變形效果。
[0033]下面詳細(xì)說(shuō)明每個(gè)步驟。
[0034](I)模型預(yù)處理步驟中:根據(jù)初始模型的骨架結(jié)構(gòu),將模型劃分為關(guān)節(jié)區(qū)域和骨骼區(qū)域,并手動(dòng)標(biāo)定骨骼區(qū)域的變形控制點(diǎn)。變形控制點(diǎn)是在模型的骨骼區(qū)域上,沿骨骼軸向選定的一系列控制點(diǎn),用于幾何變形中軸向形變量的計(jì)算。圖2中深色區(qū)域?yàn)樾⊥裙趋绤^(qū)域,而黑色圓點(diǎn)即為其變形控制點(diǎn)。
[0035]初始模型為網(wǎng)格模型,且網(wǎng)格內(nèi)部綁定了由關(guān)節(jié)和骨骼組成的骨架結(jié)構(gòu)。骨架結(jié)構(gòu)表示人體的基本結(jié)構(gòu),常用樹(shù)狀層次結(jié)構(gòu)來(lái)表示;網(wǎng)格模型位于骨架結(jié)構(gòu)外部,由三角形面片或四邊形構(gòu)成。動(dòng)畫(huà)師使用建模軟件給網(wǎng)格模型的每一個(gè)頂點(diǎn)關(guān)聯(lián)一組骨骼,并設(shè)定表示骨骼對(duì)該頂點(diǎn)影響大小的權(quán)重。這樣,當(dāng)骨架結(jié)構(gòu)運(yùn)動(dòng)時(shí),驅(qū)動(dòng)外部的網(wǎng)格模型,使其發(fā)生變形。
[0036]圖3示出了本發(fā)明中根據(jù)初始模型的骨架結(jié)構(gòu)進(jìn)行模型區(qū)域劃分的方法步驟流程圖。如圖3所示,模型區(qū)域劃分步驟包括以下步驟:
[0037]步驟11,根據(jù)骨架結(jié)構(gòu)的關(guān)節(jié)位置,確定各關(guān)節(jié)的中心截面及組成中心截面的模型頂點(diǎn)。本發(fā)明在確定關(guān)節(jié)中心截面時(shí),采用了法平面求交的算法,具體步驟是:以關(guān)節(jié)位置為原點(diǎn),以骨骼軸向?yàn)榉ㄏ蛄拷⒎ㄆ矫?;求出法平面與網(wǎng)格模型的相交線段;順序連接這些線段即可得到中心截面。線段的頂點(diǎn)即為組成中心截面的模型頂點(diǎn)。
[0038]步驟12,沿骨骼軸向分別向上、向下移動(dòng)中心截面,平移量?jī)?yōu)選為骨骼長(zhǎng)度的I /10,采用步驟11中的法平面求交方法確定關(guān)節(jié)兩側(cè)的邊界截面及組成邊界截面的模型頂
占.[0039]步驟13,確定關(guān)節(jié)兩側(cè)的邊界截面組成的區(qū)域?yàn)殛P(guān)節(jié)區(qū)域,兩個(gè)關(guān)節(jié)間相鄰的兩個(gè)邊界截面組成的區(qū)域?yàn)楣趋绤^(qū)域。
[0040]圖4相應(yīng)地展示了本發(fā)明中定義的膝關(guān)節(jié)區(qū)域和小腿骨骼區(qū)域。如圖4所示,骨骼區(qū)域?yàn)檫吔缃孛嬷g的區(qū)域,關(guān)節(jié)區(qū)域?yàn)殛P(guān)節(jié)中心橫截面沿軸向上、下平移后邊界截面之間的區(qū)域。
[0041](2)幾何變形步驟中:根據(jù)用戶設(shè)定的形體縮放參數(shù),基于自由變形技術(shù)對(duì)模型的骨骼區(qū)域進(jìn)行拉伸等幾何變形操作。
[0042]圖5示出了本發(fā)明中幾何變形的步驟流程圖。如圖5所示,幾何變形步驟具體包括:
[0043]步驟21:接受用戶設(shè)定的骨骼區(qū)域形體縮放參數(shù),如腰圍,身高等;
[0044]步驟22:針對(duì)用戶指定的骨骼區(qū)域,創(chuàng)建包含骨骼區(qū)域中模型網(wǎng)格體的軸對(duì)齊包圍盒,即與模型的坐標(biāo)軸對(duì)齊的長(zhǎng)方體,其為包含該模型網(wǎng)格體的最小矩形,矩形的各個(gè)邊與模型的坐標(biāo)軸平行;模型的坐標(biāo)軸為建立初始模型時(shí)設(shè)定的坐標(biāo)系下的坐標(biāo)軸;
[0045]步驟23:針對(duì)骨骼區(qū)域上的頂點(diǎn),計(jì)算每個(gè)頂點(diǎn)在軸對(duì)齊包圍盒中相應(yīng)的局部坐標(biāo);所述骨骼區(qū)域上的頂點(diǎn)即為骨骼區(qū)域中模型網(wǎng)格體上網(wǎng)格交叉頂點(diǎn);
[0046]步驟24:根據(jù)用戶設(shè)定的形體縮放參數(shù),建立兩類形變函數(shù),分別用于軸向、徑向形變量的計(jì)算;
[0047]步驟25:利用兩類形變函數(shù)對(duì)骨骼區(qū)域頂點(diǎn)進(jìn)行空間變換,得到形變后各個(gè)頂點(diǎn)的坐標(biāo)位置;這樣每個(gè)頂點(diǎn)的空間位置會(huì)相應(yīng)地發(fā)生改變,從而實(shí)現(xiàn)了對(duì)物體的變形操作。[0048]本發(fā)明使骨骼區(qū)域頂點(diǎn)沿其法向量方向移動(dòng),在形變過(guò)程中,不會(huì)對(duì)光照效果和角色蒙皮進(jìn)行額外的計(jì)算。由于它的高效性,使其對(duì)于實(shí)時(shí)應(yīng)用非常合適。
[0049]令M為某個(gè)骨骼區(qū)域,區(qū)域上的頂點(diǎn)集定義如下:
【權(quán)利要求】
1.一種基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其包括如下步驟: 步驟1:根據(jù)初始角色模型的骨架結(jié)構(gòu),將初始角色模型劃分為關(guān)節(jié)區(qū)域和骨骼區(qū)域,并手動(dòng)標(biāo)定骨骼區(qū)域間的變形控制點(diǎn); 步驟2:根據(jù)用戶設(shè)定的形體縮放參數(shù)以及標(biāo)定的變形控制點(diǎn),基于自由變形技術(shù)對(duì)初始角色模型的骨骼區(qū)域進(jìn)行幾何變形操作; 步驟3:在幾何變形后,調(diào)整關(guān)節(jié)對(duì)頂點(diǎn)的影響權(quán)重; 步驟4:根據(jù)關(guān)節(jié)對(duì)關(guān)節(jié)區(qū)域和骨骼區(qū)域上頂點(diǎn)的影響權(quán)重,采用雙四元數(shù)法驅(qū)動(dòng)角色模型進(jìn)行平移和旋轉(zhuǎn)運(yùn)動(dòng),生成生動(dòng)逼真的皮膚變形效果。
2.根據(jù)權(quán)利要求1所述基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于:所述步驟I中的初始模型為網(wǎng)格模型,且網(wǎng)格內(nèi)部綁定了由關(guān)節(jié)和骨骼組成的骨架結(jié)構(gòu);骨架結(jié)構(gòu)表示人體的基本結(jié)構(gòu);網(wǎng)格模型位于骨架結(jié)構(gòu)外部,由三角形面片構(gòu)成;網(wǎng)格模型與骨架結(jié)構(gòu)之間按照特定的規(guī)則建立約束關(guān)系,當(dāng)骨架結(jié)構(gòu)運(yùn)動(dòng)時(shí),驅(qū)動(dòng)外部的網(wǎng)格模型,使其發(fā)生變形。
3.根據(jù)權(quán)利要求1所述的基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于:所述步驟I中區(qū)域劃分具體包括: 步驟11:根據(jù)初始模型骨架結(jié)構(gòu)的關(guān)節(jié)位置,采用法平面求交法確定關(guān)節(jié)的中心截面及組成截面的模型頂點(diǎn); 步驟12:沿骨骼軸向分別向上、向下移動(dòng)中心截面,采用步驟11中的法平面求交方法確定關(guān)節(jié)兩側(cè)的邊界截面及組成截面的模型頂點(diǎn); 步驟13:確定關(guān)節(jié)兩側(cè)的邊界截面組成的區(qū)域?yàn)殛P(guān)節(jié)區(qū)域,兩個(gè)關(guān)節(jié)間相鄰的兩個(gè)邊界截面組成的區(qū)域?yàn)楣趋绤^(qū)域。
4.根據(jù)權(quán)利要求1所述的基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于:所述步驟2中所述自由變形過(guò)程中采用軸對(duì)齊包圍盒進(jìn)行幾何變形操作。
5.根據(jù)權(quán)利要求1所述的基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于: 所述步驟2具體包括如下步驟: 步驟21:接受用戶設(shè)定的骨骼區(qū)域形體縮放參數(shù); 步驟22:針對(duì)用戶指定的骨骼區(qū)域,創(chuàng)建包含骨骼區(qū)域的模型網(wǎng)格體的軸對(duì)齊包圍盒; 步驟23:針對(duì)骨骼區(qū)域上的頂點(diǎn),計(jì)算每個(gè)頂點(diǎn)在軸對(duì)齊包圍盒中相應(yīng)的局部坐標(biāo);步驟24:根據(jù)用戶設(shè)定的形體縮放參數(shù),建立分別用于計(jì)算骨骼區(qū)域頂點(diǎn)的軸向、徑向形變量的兩類形變函數(shù); 步驟25:利用所建立的兩類形變函數(shù)對(duì)骨骼區(qū)域頂點(diǎn)進(jìn)行空間變換,得到變形后骨骼區(qū)域中各個(gè)頂點(diǎn)的坐標(biāo)。
6.根據(jù)權(quán)利要求1所述基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于:所述步驟3中僅調(diào)整關(guān)節(jié)對(duì)關(guān)節(jié)區(qū)域頂點(diǎn)的影響權(quán)重,關(guān)節(jié)對(duì)骨骼區(qū)域頂點(diǎn)的影響權(quán)重不變。
7.根據(jù)權(quán)利要求6所述基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于:步驟3具體包括:步驟71:假設(shè)角色模型為絕緣熱導(dǎo)體,對(duì)角色模型表面建立熱平衡方程; 步驟72:利用稀疏線性系統(tǒng)分解及回代法求解所述熱平衡方程,得到影響關(guān)節(jié)區(qū)域頂點(diǎn)的每個(gè)關(guān)節(jié)的權(quán)重。
8.根據(jù)權(quán)利要求1所述基于幾何變形的三維動(dòng)畫(huà)角色模型皮膚變形方法,其特征在于:所述步驟4具體包括如下步驟: 步驟81:將模型運(yùn)動(dòng)數(shù)據(jù)中關(guān)節(jié)的矢量位移和旋轉(zhuǎn)轉(zhuǎn)化為雙四元數(shù)表示; 步驟82:采用雙四元數(shù)法得到頂點(diǎn)相關(guān)的關(guān)節(jié)運(yùn)動(dòng)數(shù)據(jù)的雙四元數(shù),進(jìn)而根據(jù)關(guān)節(jié)對(duì)頂點(diǎn)的影響權(quán)重,得到表示頂點(diǎn)運(yùn)動(dòng)變換的雙四元數(shù); 步驟83:將表示頂點(diǎn)運(yùn)動(dòng)變換的雙四元數(shù)轉(zhuǎn)換為變換矩陣,對(duì)頂點(diǎn)進(jìn)行平移和旋轉(zhuǎn)運(yùn)動(dòng),生成生動(dòng)逼真的皮膚變形效果。`
【文檔編號(hào)】G06T13/40GK103679783SQ201310491792
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年10月18日 優(yōu)先權(quán)日:2013年10月18日
【發(fā)明者】蔣永實(shí), 朱曉陽(yáng) 申請(qǐng)人:中國(guó)科學(xué)院自動(dòng)化研究所, 常州科學(xué)與藝術(shù)融合技術(shù)研究所